中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] »
作者:
标题: DOS的界面开发终结者 上一主题 | 下一主题
cxjnet
新手上路





积分 7
发帖 4
注册 2006-3-8
状态 离线
『第 211 楼』:  

谢谢提供了

用这东西开发DOS程序就简单多了

2007-11-30 00:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wuxianglin2000
初级用户





积分 34
发帖 17
注册 2007-12-29
状态 离线
『第 212 楼』:  

我怎么打不开你的网站啊,能否发一份给我,谢谢!
wuxianglin2000@sina.com

2007-12-29 15:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wuxianglin2000
初级用户





积分 34
发帖 17
注册 2007-12-29
状态 离线
『第 213 楼』:  

幸好到前面翻了一下帖子,已经下载了,谢谢!

2007-12-29 15:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kit100
新手上路





积分 4
发帖 2
注册 2008-1-3
状态 离线
『第 214 楼』:  

think!!!!!

2008-1-3 23:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kit100
新手上路





积分 4
发帖 2
注册 2008-1-3
状态 离线
『第 215 楼』:  

我怎么打不开你的网站啊,能否发一份给我,谢谢!
honkit.wong@gmail.com

2008-1-3 23:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 216 楼』:  

在“http://www.firstsail.com.cn/software.html”下载

2008-1-5 17:37
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 217 楼』:  如何加载第三方的TCP/IP和多任务模块

(1)对于第三方TCP/IP来说,注册三个函数,分别为“初始化服务函数”和“终止服务函数”以及“网络消息循环函数”
其中:
  注册“初始化服务函数”是为了InitSystem()中调用。
  注册“终止服务函数”是为了CloseSystem()中调用。
  注册“网络消息循环函数”是为了CWindow::OnIdle()函数中调用。


   (2)对于第三方多任务模块来说,注册三个函数,分别为“初始化服务函数”和“终止服务函数”以及“休息函数”
其中:
  注册“初始化服务函数”是为了InitSystem()中调用。
  注册“终止服务函数”是为了CloseSystem()中调用。
  注册“休息函数”是为了系统内部在调用KernelDelay()函数时,转换到实际的delay或sleep休息函数。




int main(int argc, char** argv)
{

//注册WinSail-TCPIP栈
// GlobalInitSocket -- TCP/IP初始化服务函数
// GlobalCloseSocket -- TCP/IP终止服务函数
// EthernetEntry -- TCP/IP网络消息循环函数
::AfxRegisterNetcardEntry(::GlobalInitSocket,
  ::GlobalCloseSocket, ::EthernetEntry);

////注册WinSail-多任务栈
// KernelInitProcess -- 多任务初始化服务函数
// KernelCloseProcess -- 多任务终止服务函数
// __MultiTaskDelay -- 多任务的休息函数
::AfxRegisterMultitaskEntry(::KernelInitProcess,
  ::KernelCloseProcess, ::__MultiTaskDelay);

//初始化系统内核
if (!::InitSystem(argc, argv))
{
  //关闭系统内核
  ::CloseSystem();
  printf("\nInit System Error!");
  return(0);
}


//用户程序
        //.......


//关闭系统内核
::CloseSystem();

return(1);

}

2008-2-19 19:31
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
godai
初级用户





积分 28
发帖 13
注册 2008-2-18
状态 离线
『第 218 楼』:  firstsail大大请进:关于winsail的问题

请问firstsail大大, 新下载了winwail的程序,发现了两个问题:

1。在有CMenu菜单的窗口里再加任一控件(例如加个工具条 CToolsBar)后, CMenu就不能用鼠标开启, 只能用键盘Alt+F开启后才能再用鼠标操作; 以前试用过大大的winsail早期版本反而没有问题?

2。 打开和存储文件夹好像不能支持软驱A盘?

2008-2-20 18:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 219 楼』:  



  Quote:
在有CMenu菜单的窗口里再加任一控件(例如加个工具条 CToolsBar)后, CMenu就不能用鼠标开启, 只能用键盘Alt+F开启后才能再用鼠标操作; 以前试用过大大的winsail早期版本反而没有问题?

答:已经发现确实有这一问题,因网站服务器正在刷新,需在下午5:30以后方能上传更改后的WinSail,届时请重新下载后,编译时用Bc31重新“Build All”.

  Quote:
打开和存储文件夹好像不能支持软驱A盘?

答:由于软盘很少使用,在新版本上将它取消了。我一般用“CF卡”+“CF转IDE转换器”代替软盘。

2008-2-22 16:28
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
kmlxk
初级用户





积分 45
发帖 17
注册 2006-9-23
状态 离线
『第 220 楼』:  

强~眼泪直流啊。。

2008-2-24 01:51
查看资料  发送邮件  发短消息 网志  OICQ (86565242)  编辑帖子  回复  引用回复
godai
初级用户





积分 28
发帖 13
注册 2008-2-18
状态 离线
『第 221 楼』:  郭大大: 有否更新?

郭大大, 是在您的主页 http://www.firstsail.com.cn/Software.html 上更新了吗? 我刚刚下了好像还没有变, 还是[2008-01-15 20:48] 版本,  里面的sail.lib也还是07年12月25日的?

另: 打开和存储对话框函数的一个小问题: 比如我的D盘是USB-disk, 启动程序的时候有检测到U盘, 但打开对话框的时候如果没有插U盘就会造成系统死机。  

还有据我了解,在不少传统工业,由于更新缓慢,不少老的工业环境仍然在使用软盘。 如果从提高兼容性考虑,建议大大还是加入软盘读写功能,应该不用多加程序,因为读写与硬盘相同,都是DOS标准函数。

如果要解决上面两个问题, 建议在打开此对话框前先用absread或_bios_disk函数检测是否有此盘存在, 就可解决软盘或U盘没插入的问题。

2008-2-26 11:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 222 楼』:  



  Quote:
在您的主页 http://www.firstsail.com.cn/Software.html 上更新了吗? 我刚刚下了好像还没有变, 还是[2008-01-15 20:48] 版本,  里面的sail.lib也还是07年12月25日的?

因为网络刚刚修复,直至今日才更新WinSail [2008-02-26 14:05],已修正菜单的鼠标问题!

  Quote:
如果要解决上面两个问题, 建议在打开此对话框前先用absread或_bios_disk函数检测是否有此盘存在, 就可解决软盘或U盘没插入的问题。

过几天按您所提示加入absread或_bios_disk函数检测磁盘的存在,请关注更新!

[ Last edited by firstsail on 2008-2-26 at 03:27 PM ]

2008-2-26 15:23
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
fgckfl
初级用户




积分 46
发帖 22
注册 2006-11-13
状态 离线
『第 223 楼』:  试用得几点意见

1。多exe程序合成时,主程序调用子程序时,屏幕上会显示“sail200 触”,如何屏蔽呢?
2。settimefc()函数可否设定定时时间,dos下“嘟”得时间太短。有时不希望定时器工作太快。
3。多行编辑框怎么设定最大字节数,或行最大字节数,或最大列数,这样在输入时不需回车就可自动换行。
4。能给个列表控件编辑和数据库相结合得例子吗?

2008-2-26 21:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 224 楼』:  



  Quote:
多exe程序合成时,主程序调用子程序时,屏幕上会显示“sail200 触”,如何屏蔽呢?

......

  Quote:
settimefc()函数可否设定定时时间,dos下“嘟”得时间太短。有时不希望定时器工作太快。

默认情况下是55mS,现将它设置为110mS
void far OnTime_MyDialog(CObject* pObj)
{

    CDialog* pDialog = (CDialog *)pObj;

    //引入静态变量作为计时次数
    static int nLoops = 0;
    if ((++nLoops) < 2)
    {
        return;
    }
    nLoops = 0;
   
    //这里加入您的代码

}

  Quote:
3。多行编辑框怎么设定最大字节数,或行最大字节数,或最大列数,这样在输入时不需回车就可自动换行。

//.....

  Quote:
4。能给个列表控件编辑和数据库相结合得例子吗?  

BOOL LoadDatabase(CListBox* pListbox)
{
        char buf[256];

        char* pStrFile = "MyBase.Dbf";
        //假设有一个数据库名称为“MyBase.Dbf”,其有三个字段
        //其中索引为 2的字段是字符串字段

        //打开数据库
        CFoxpro mFoxpro;
        if (!mFoxpro.Open (pStrFile))
        {
                ::sprintf (buf, "文件开打错误\n---%s", pStrFile);
                ::AfxMessageBox("错误", buf, MB_OK);
                return (FALSE);
        }

        //读索引为2的字段的属性
        FOXPRO_FIELDS mFoxproFields = *(mFoxpro.GetFoxproFields(2));

        //判断索引为2的字段是否为字符串字段
        if (mFoxproFields.byStyle != 'C' && mFoxproFields.byStyle != 'c')
        {
                ::sprintf (buf, "数据库非法\n---%s", pStrFile);
                ::AfxMessageBox("错误", buf, MB_OK);
                return (FALSE);
        }

        int nMaxCh = (int)(WORD)mFoxproFields.byLength;

        //得到数据库的总纪录数
        long lgCount = mFoxpro.GetRecordCount();

        //设置列表框每一行的最大字符数
        pListBox->SetLineCharacter((nMaxCh == 255) ? 255 : nMaxzCh + 1);
       
        //设置列表框的总项数为lgCount个
        pListBox->SetCount (lgCount);

        //循环读数据库的索引为2的字符串字段内容
        for (long i = 0L; i < lgCount; i++)
        {
                //定位数据库
                mFoxpro.Seek(i, SEEK_SET);

                //读索引为2的字符串字段的值
                mFoxpro.GetFieldString (2, buf);

                //将读出来的值写入列表框
                pListBox->SetSel(i, buf);
        }


        //关闭数据库
        mFoxpro.Close();

        return (TRUE);
}

[ Last edited by firstsail on 2008-2-27 at 11:27 AM ]

2008-2-27 10:51
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
liudongfu
新手上路





积分 4
发帖 2
注册 2008-1-18
状态 离线
『第 225 楼』:  

在那儿下呀,

2008-2-27 12:55
查看资料  发送邮件  发短消息 网志  OICQ (544953974)  编辑帖子  回复  引用回复
« [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: