中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-14 06:07
76 发表于 2005-12-20 19:50 ·  中国 北京 联通
高级用户
★★
积分 506
发帖 187
注册 2005-12-04 22:41
UID 46500
性别 男
状态 离线
还是报错。不过这次倒是没有崩溃。
还是谢谢郭恒。
77 发表于 2005-12-20 22:40 ·  中国 广东 珠海 电信
中级用户
★★
积分 493
发帖 161
注册 2002-10-29 00:00
UID 94
性别 男
来自 ZHCN
状态 离线
学习ING...
78 发表于 2006-01-09 10:19 ·  中国 湖南 邵阳 电信
初级用户
积分 44
发帖 14
注册 2006-01-04 13:08
UID 48410
性别 男
状态 离线
郭大侠!你好好牛,美死我了!!!,我狠狠地KISS YOU
79 winsail编译程序死机 发表于 2006-01-21 21:15 ·  中国 广东 深圳 天威有线宽带(关内)
初级用户
积分 184
发帖 31
注册 2005-03-13 00:00
UID 36998
性别 男
状态 离线
winsail太伟大了,但是编译的程序在那里运行,不动鼠标键盘,久了死机。是不是一定要带:
//Register Callback Function for Window
pDialog->SetTimeFc(NULL);//注册定时器回调函数
pDialog->SetDrawFc(NULL);//注册画图回调函数
pDialog->SetHelpFc(NULL);//注册帮助回调函数
pDialog->SetKeyboardFc(NULL);//注册虚拟键盘回调函数
80 发表于 2006-02-16 14:45 ·  中国 广西 桂林 电信
初级用户
★★
积分 176
发帖 74
注册 2005-11-07 16:51
UID 44761
状态 离线
厉害,这个强,
不过,看不懂,嘿嘿
81 使用XMS内存 发表于 2006-04-17 11:10 ·  中国 广东 深圳 宝安区 电信
高级用户
★★
积分 668
发帖 295
注册 2005-07-26 00:00
UID 41110
性别 男
来自 广东深圳
状态 离线
#include <string.h>

#include <Symbol.h>
#include <Memory.h>


extern unsigned _stklen = 50L * 1024L;


int main()
{
//建立一个默认页框为256字节
CXmsMemory mXmsMemory;

//分配一新的内存块作为新页框。页框越大,访问XMS的速度越快
BYTE* pNewBlock = new BYTE[2048];
//用户的默认页框为256字节,改变页框为2048字节
BYTE* pOldBlock = mXmsMemory.ChangeFrame(pNewBlock, 2048);
//删除老的页框
delete pOldBlock;

//分配200K字节的XMS内存
mXmsMemory.SetSize(200L, 1024L);

//增加100K的XMS内存(300 = 200 + 100)
mXmsMemory.SetSizeEx(300L, 1024L);


//将字符串“My name is LiPing!”写入以字节为单位的索引“120030L”的位置
char buf[100] = "My Name is LiPing!";
mXmsMemory.SetByteData(120030L, (BYTE *)buf, _fstrlen(buf) + 1);

//将字符串“My name is LiPing!”从以字节为单位的索引“120030L”的位置读出来
_fmemset((BYTE *)buf, 0, 100);
mXmsMemory.GetByteData(120030L, (BYTE *)buf, 100);
printf("\n S = \"%s\"", buf);
getch();

//释放已经分配的XMS内存块
mXmsMemory.FreeXms();

return(0);
}
82 发表于 2006-04-24 09:57 ·  中国 湖北 荆州 电信
高级用户
★★★
积分 994
发帖 444
注册 2005-01-29 00:00
UID 35779
性别 男
状态 离线
在 pcm3486 上如何使用呢
83 发表于 2006-04-24 12:46 ·  中国 广东 深圳 宝安区 电信
高级用户
★★
积分 668
发帖 295
注册 2005-07-26 00:00
UID 41110
性别 男
来自 广东深圳
状态 离线
在XMS模块中,全程变量int nAfxXmsStyle是控制默认分配XMS内存模式的变量。
nAfxXmsStyle = XMSMEMORY_STYLE_MORAL (=0)表示默认XMS
84 使用XMS内存 发表于 2006-04-24 12:58 ·  中国 广东 深圳 宝安区 电信
高级用户
★★
积分 668
发帖 295
注册 2005-07-26 00:00
UID 41110
性别 男
来自 广东深圳
状态 离线
在XMS模块中,全程变量int nAfxXmsStyle是控制默认分配XMS内存模式的变量。
nAfxXmsStyle = 0 (=XMSMEMORY_STYLE_MORAL)表示默认XMS
nAfxXmsStyle = 1 (=XMSMEMORY_STYLE_DISK)表示磁盘XMS
nAfxXmsStyle = 2 (=XMSMEMORY_STYLE_EMSCARD)表示PCM3486的扩充内存卡

如果您调用了"InitSystem()"函数,则它会分析“Config.Sys”文件的"Boot"段的“XmsStyle”键。


其实,可以调用CXmsMemory::SetXmsStyle()来改变XMS性质,必须在下面函数之前调用:
CXmsMemory::SetSize()
CXmsMemory::SetSizeEx()
CXmsMemory::MallocXms()函数

//---------------------------------------------

#include <string.h>

#include <Symbol.h>
#include <Memory.h>


extern unsigned _stklen = 50L * 1024L;

extern int nAfxXmsStyle;
int main()
{
nAfxXmsStyle = XMSMEMORY_STYLE_DISK; //用磁盘访真XMS内存


//建立一个默认页框为256字节
CXmsMemory mXmsMemory;

//分配一新的内存块作为新页框。页框越大,访问XMS的速度越快
BYTE* pNewBlock = new BYTE[2048];
//用户的默认页框为256字节,改变页框为2048字节
BYTE* pOldBlock = mXmsMemory.ChangeFrame(pNewBlock, 2048);
//删除老的页框
delete pOldBlock;

//分配200K字节的XMS内存
mXmsMemory.SetSize(200L, 1024L);

//增加100K的XMS内存(300 = 200 + 100)
mXmsMemory.SetSizeEx(300L, 1024L);


//将字符串“My name is LiPing1!”写入以字节为单位的索引“120030L”的位置
char buf[100] = "My Name is LiPing1!";
mXmsMemory.SetByteData(120030L, (BYTE *)buf, _fstrlen(buf) + 1);

//将字符串“My name is LiPing1!”从以字节为单位的索引“120030L”的位置读出来
_fmemset((BYTE *)buf, 0, 100);
mXmsMemory.GetByteData(120030L, (BYTE *)buf, 100);
printf("\n S = \"%s\"", buf);


//如果在普通PC上运行的话,可以将内存改为XMS
mXmsMemroy.FreeXms();
mXmsMemory.SetXmsStyle(XMSMEMORY_STYLE_NORMAL);//如果是PCM3486改为XMSMEMORY_STYLE_EMSCARD
mXmsMemory.SetSize(300L, 1024L);

//将字符串“My name is LiPing2!”写入以字节为单位的索引“120030L”的位置
_fmemcpy(buf, "My Name is LiPing2!");
mXmsMemory.SetByteData(120030L, (BYTE *)buf, _fstrlen(buf) + 1);

//将字符串“My name is LiPing2!”从以字节为单位的索引“120030L”的位置读出来
_fmemset((BYTE *)buf, 0, 100);
mXmsMemory.GetByteData(120030L, (BYTE *)buf, 100);
printf("\n S = \"%s\"", buf);


getch();

//释放已经分配的XMS内存块
mXmsMemory.FreeXms();

return(0);
}
85 发表于 2006-06-03 13:25 ·  中国 广东 深圳 宝安区 电信
新手上路
积分 2
发帖 1
注册 2006-06-03 13:19
UID 56483
性别 女
来自 广东深圳
状态 离线
好东西呀!

踏破铁鞋无觅处,得来全不费功夫!

多谢楼主的无私奉献!
86 发表于 2006-07-17 18:33 ·  中国 广东 深圳 电信
高级用户
★★
积分 668
发帖 295
注册 2005-07-26 00:00
UID 41110
性别 男
来自 广东深圳
状态 离线
请问版主,如何在贴子里面插入图片?
87 发表于 2006-07-17 22:08 ·  中国 云南 红河哈尼族彝族自治州 石屏县 电信
中级用户
★★
积分 478
发帖 132
注册 2003-07-02 00:00
UID 6296
性别 男
状态 离线
to firstsail:强烈建议你搞一个集成开发环境,就比如boywindows和qbwin之类的一样,这样就更方便了,虽然用你的程序转vc++生成的代码,可我看应该说不错, 但并不是非常好,所以如果有时间的话,强烈的建议!!!!!
88 发表于 2006-07-22 11:49 ·  中国 香港 Cyber_Express通信公司
银牌会员
★★★
阿林
积分 1,410
发帖 497
注册 2004-06-28 00:00
UID 27551
性别 男
来自 九龍,香港
状态 离线
Originally posted by profree at 2006-7-17 10:08 PM:
to firstsail:强烈建议你搞一个集成开发环境,就比如boywindows和qbwin之类的一样,这样就更方便了,虽然用你的程序转vc++生成的代码,可我看应该说不� ...


Firstsail 的 介 面 真 的 棒 , 但 愿 国 内 这 些 高 手 可 以 参 与 世 界 性 的 计 划 例 如 ReactOS ... 一 方 面 不 样 微 软 剥 削 , 二 来 又 为 中 国 人 民 争 光 !
我 的 網 站 - http://optimizr.dyndns.org
89 我怎么下载不下来?请问如何下载 发表于 2006-07-24 09:09 ·  中国 江苏 苏州 电信
新手上路
积分 2
发帖 1
注册 2006-07-23 01:47
UID 59048
状态 离线
90 发表于 2006-07-25 00:44 ·  中国 云南 红河哈尼族彝族自治州 个旧市 电信
中级用户
★★
积分 478
发帖 132
注册 2003-07-02 00:00
UID 6296
性别 男
状态 离线
老大,怎么没有回贴啊
论坛跳转: