中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-14 23:33
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS开发编程 & 发展交流 (开发室) » DOS的界面开发终结者
可打印版本  98,401 / 290
第271楼 firstsail 发表于 2008-11-20 11:18
高级用户 发帖 295 积分 668 来自 广东深圳
Originally posted by godai at 2008-7-17 12:00:
郭大大, 您的winsail程序在试用中出现一个现象: 就是在振动环境中有时候偶尔会发生PS2鼠标指针乱飞掉的情况。 初步判断是干扰引起的鼠标通讯错误 ...



关于鼠标在振动的工业环境中乱跳的情况可能是由于用了“光电鼠标”,建议在工业强振动环境用“机械式滚轮鼠标”试一试。
第272楼 windowsvesta 发表于 2009-03-05 00:45
初级用户 发帖 67 积分 138 来自 云南
好像好久没有更新了!
第273楼 andyond 发表于 2009-03-15 10:05
新手上路 发帖 8 积分 16
下来学习学习,
第274楼 firstsail 发表于 2009-04-02 23:36
高级用户 发帖 295 积分 668 来自 广东深圳
窗口控件支持了“命令快捷键”函数
void CWindow::AddCommandKey(WORD wKey, void far (*pMyFc)(CObject *));

函数功能:增加键盘快捷键(无需控件宿主)

入口参数:wKey ------ 虚拟按键值。例如F1键是VK_F1,F1键是VK_F2,...,F10键是VK_F10
pMyFc ---- 回调函数。原型为
void far MyFc(CObject* pObject)
{
CWindow* pWindow = (CWindow *)pObject;
//下面增加您自己的代码
//......
}
出口参数:无
返 回 值:无

[ Last edited by firstsail on 2009-4-2 at 23:39 ]
第275楼 firstsail 发表于 2009-05-06 08:12
高级用户 发帖 295 积分 668 来自 广东深圳
发现数据库Flush函数的严重出错
发现经过
有客户反映,程序未正常关机时,经常造成数据库文件的数据丢失,数据库文件非法!
检查程序
自己的程序每写一次数据纪录,已经调用了“CFoxpro::Flush()”函数,其作用是将数据真正写入磁盘,如果有上面说过的情况,理应是该函数有问题。

BOOL CFoxpro::Flush()
{
//检查文件指针的合法性
if (NULL == m_pFile)
{
return(FALSE);
}

//刷新磁盘缓冲区
::fflush(m_pFile);

return(TRUE);
}

初步怀疑C函数库提供的fflush()函数并不是将磁盘冲区数据全部写入磁盘,经过使用BC31的帮助文件,发现真不是这回事!正确应如下修改

解决问题

将CFoxpro::Flush()修改为如下所示,已解决

BOOL CFoxpro::Flush()
{
//检查文件指针的合法性
if (NULL == m_pFile)
{
return(FALSE);
}

//刷新磁盘缓冲区
::fflush(m_pFile);

int duphandle = ::dup(fileno(m_pFile));

::close(duphandle);

return(TRUE);
}
第276楼 firstsail 发表于 2009-05-16 01:11
高级用户 发帖 295 积分 668 来自 广东深圳
WinSail的TCP/IP栈是如何工作的?
为了让大家对WINSAIL在单任务系统中如何调度TCP/IP的。下面作一些说明!

(1)在窗口的CWindow::OnIdle(CObject* pObj)函数中,调用了TCP/IP的循环处理入口函数指针pSocketLoopFc指向的套接字循环函数。




CWindow::OnIdle(CObject* pObj)的源代码如下


extern BOOL bAfxNetcard; //是否在CONFIG.Sys文件中配置需要网卡标志
extern BOOL bAfxInitSocket; //是否套接字成功初始化标志
extern BOOL (*__pSocketInitFc)(); //套接字初始化函数指针
extern BOOL (*__pSocketCloseFc)();//套接字关闭函数指针
extern BOOL (*__pSocketLoopFc)(BOOL, BOOL, BOOL);//套接字循环函数指针

void CWindow::OnIdle()
{
//这里判断是否需要执行TCP/IP栈
if (bAfxNetcard && bAfxInitSocket && __pSocketLoopFc != NULL)
{
__pSocketLoopFc(TRUE, TRUE, TRUE);
}

//这里执行void CWindow::SetIdleFc()函数注册的“空闲函数指针“
if (m_pIdleFc != NULL)
{
m_pIdleFc((CObject*)this);
}
}

(2)注册TCP/IP协议栈的函数AfxRegisterNetcardEntry()源代码如下

BOOL AfxRegisterNetcardEntry(BOOL (*pSocketInitFc)(),
BOOL (*pSocketCloseFc)(), BOOL (*pSocketLoopFc)(BOOL, BOOL, BOOL))
{
if (pSocketInitFc == NULL || pSocketCloseFc == NULL)
{
return(FALSE);
}
__pSocketInitFc = pSocketInitFc;
__pSocketCloseFc = pSocketCloseFc;
__pSocketLoopFc = pSocketLoopFc;
return(TRUE);
}

(3)WinSail默认的
套接字初始化函数:GlobalInitSocket()函数
套接字关闭函数是:GlobalCloseSocket()函数
套接字循环函数:EthernetEntry()函数

EthernetEntry只处理ARP、RARP、ICMP请求以及没有发送的数据包及时发送出去,对于其它的请求则被忽略。
所以用户应用还需要重新编写自己的“套接字循环函数”。


//下面是用户自己编写的“套接字循环函数”。这个可以参照Sail3000工程的Sail2000.Cpp文件和Remote_N.Cpp文件,它实现了“文件传输、键盘按键下发、鼠标按键下发、屏幕上传、QQ聊天”等功能。
BOOL User_EthernetEntry(BOOL bSingle, BOOL bSend, BOOL bIcmp)
{
//运行默认的套接字循环函数
::EthernetEntry(bSingle, bSend, bIcmp);

//下面编写自己的SOCKET查询、读、写等等
//(略)


return(TRUE);
}



(4)由于WINSAIL运行于单任务中,所以任何地方的长时间堵塞,都会造成TCP/IP的长期堵塞。为了减少这情况,在堵塞的循环中,须调用

User_EthernetEnty(TRUE, TRUE, TRUE);


(5)如果用户注册第三方的TCP/IP栈(如Watcp等),初始化函数成功须返回TRUE,否则返回FALSE,WinSail自动对初始化函数的返回标志对bAfxInitSocket变量置位,同时别忘了配置config.Sys文件中的“Netcard”段的“netCard”键值置成 TRUE,方能与WinSail完美结合!

在WINSAIL里面的InitSystem()函数是这样初始化TCP/IP协议栈的:



bAfxInitSocket = FALSE;

if (bAfxNetcard && __pSocketInitFc != NULL &&
__pSocketCloseFc != NULL)
{
if (!__pSocketInitFc())
{
__pSocketCloseFc();
bAfxInitSocket = FALSE;

//AfxMessageBox("网络","无法加载网络!");
}
else
{
bAfxInitSocket = TRUE;
}
}

[ Last edited by firstsail on 2009-5-16 at 02:25 ]
第277楼 zhiming420 发表于 2009-11-15 09:08
新手上路 发帖 3 积分 5
好东西哦
第278楼 firstsail 发表于 2010-07-05 14:17
高级用户 发帖 295 积分 668 来自 广东深圳
网站因地址解析错误,导致网站几个月不能正常登录.现在终于可以登录了!
第279楼 houwenhui 发表于 2010-07-09 13:56
新手上路 发帖 9 积分 14
太神奇了 看不懂啊
第280楼 firstsail 发表于 2011-01-14 11:15
高级用户 发帖 295 积分 668 来自 广东深圳
WinSail的MakeDlg.Exe文件升级
WinSail的MakeDlg.Exe文件升级



增高了两个选项
(1)将CLabel和CGroup控件解释成非控件
(2)将CGroup坐标与Windows对齐

<1>如果选中"CLabel和CGroup控件解释成非控件"选项, 则将所有的CLabel与CGroup控件的生成代码被注释,并且生成void FAR OnDraw_VccFunction(CObject *)函数,函数内部生成代码如下:

其中CLabel控件解释成ChPrintf()函数
其中CGroup控件解释成DrawBoxCaptionEx()函数

这样设计的目的是为了节省宝贵的内存


<2>如果选中"将CGroup坐标与Windows对齐"选项, 则WinSail的Group控件与Windows的Group控件的可视边框区域相同,强列推荐使用该选项.


下载地址:http://www.firstsail.com.cn/software.html

[ Last edited by firstsail on 2011-1-14 at 11:23 ]
第281楼 wuhengsi 发表于 2011-01-16 00:48
新手上路 发帖 5 积分 10
我用的联通网络,不知道为什么,我无法进入郭兄的网址“http://www.FirstSail.b2b.Cn

希望那个好心朋友能帮将郭兄的软件发到我的邮箱里面,感谢了
邮箱地址: wuhengsi88@163.com
第282楼 firstsail 发表于 2011-01-19 10:16
高级用户 发帖 295 积分 668 来自 广东深圳
Originally posted by wuhengsi at 2011-1-16 00:48:
我用的联通网络,不知道为什么,我无法进入郭兄的网址“http://www.FirstSail.b2b.Cn

希望那个好心朋友能帮将郭兄的软件发到我的邮箱里面,感谢了
邮箱地址: wuhengsi88@163.com



网站地址是:http://www.firstsail.com.cn/softwafe.html
电子邮箱是:szhello8@21cn.net
第283楼 f371575950 发表于 2016-12-24 23:58
新手上路 发帖 5 积分 10
学习学习
第284楼 firstsail2 发表于 2018-07-13 20:16
新手上路 发帖 4 积分 5
好久没有回来了!
第285楼 firstsail 发表于 2018-07-14 12:08
高级用户 发帖 295 积分 668 来自 广东深圳
如果定制可移值的Excel能识别的数据库
在单片机系统,或Linux系统中,经常要用到自定义的数据库,该数据库文件希望能被Windows下的Office Excel识别,怎么办呢?现在有一个方法,可以使用Foxpro2.6版本的数据库,文件结构是公开的,且可被Excel识别。

在WinSail中,由Foxpro.h和Foxpro.Cpp文件组成,稍后会公开所有源代码上来,如果有需要的人士可以移值!
上一页  116 17 18 19 20  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023