有两个问题,应该不是很难吧,进来看看

SGP 2004-08-03 07:11:19
1、应单位需要,我要做一个微型的数据库系统(嵌入式系统用),想了解一下一般数据文件的存贮结构,请问哪儿有相关的资料?

2、我用Delphi做了个带窗体的dll库(一个硬件仿真器),然后我在C中调用它,不过用的是控制台界面,没有窗口(当然没有窗口句柄了),问题是我如何激活这个dll库中的窗体并使它能接收系统消息(用Form.ShowModal会停止C中代码的执行直到并闭Form,而如果用Form.Show没法使Form接收系统消息),我该如何进行设置?

下面是dll的接口代码:

library VirDevice;
uses
SysUtils,
Classes,
Forms,
V_LCD12232 in 'V_LCD12232.pas' {LCD_12232};

{$R *.res}

type

var
Bak_ExitProc: Pointer;

procedure DoExit;
begin
LCD_12232.Free;
ExitProc := Bak_ExitProc;
end;

procedure ProcessCommand(Command: Word); stdcall;
begin
LCD_12232.ProcessCommand(Command);
end;

Exports
ProcessCommand;

// 因为是仿真器,所以我希望在初始化时就建好窗口,而后可以在C代码的控制下进行仿真操作
begin
Bak_ExitProc := ExitProc;
ExitProc := @DoExit;
LCD_12232 := TLCD_12232.Create(Application);
LCD_12232.Show;
// LCD_12232.ShowModal;
end.
...全文
386 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
SGP 2004-08-26
  • 打赏
  • 举报
回复
.
Rex_love_Burger 2004-08-25
  • 打赏
  • 举报
回复
up
SGP 2004-08-25
  • 打赏
  • 举报
回复
? up.
SGP 2004-08-24
  • 打赏
  • 举报
回复
up.
SGP 2004-08-22
  • 打赏
  • 举报
回复
请注意了,我是一个仿真器,也就是说它应该是独立与任何一个应用软件的,即不应该由应用软件来刷新它,而要由它自已来获得系统消息.
再有,我用的是DLL,它没有自已的堆栈空间,它必须挂在另一个进程中执行,如果我不能把进程的句柄给他,我如何让它独立的获得系统消息?我试过,在DLL中放置的定义器或是独立线程中使用Application.ProcessMessage()是不可能有作用的.
庄鱼 2004-08-20
  • 打赏
  • 举报
回复
你在每次响应视图时重新调用Dll库不行吗?
我觉得,如果单一的方法你可以实现,那么多次的就不该很困难,至少你可以采用这样两种方法:一是采用计数器定时地检查数据更新情况,二是采用消息机制来追踪数据更新;另外,就是你的数据获取的方式,你可以将其放入独立的刷新函数里,这样,不仅可以被Show事件触发,也可以被计数器、鼠标、键盘等等一系列的希望响应的事件所触发。
由于不能确定你的问题实际出在何处,仅能提供一个简单的思路,供参考。
SGP 2004-08-19
  • 打赏
  • 举报
回复
...
SGP 2004-08-18
  • 打赏
  • 举报
回复
SGP 2004-08-18
  • 打赏
  • 举报
回复
帮忙啊!第二个问题如何解决?
ju1 2004-08-18
  • 打赏
  • 举报
回复
太深奥 已经看不懂了!
SGP 2004-08-17
  • 打赏
  • 举报
回复
我只是作了个简单的调用,因为我不知道句柄,所以没法把句柄给DLL

hLibrary = LoadLibrary("VirDevice.dll");
CommFunc = (pCommand)GetProcAddress(hLibrary, "ProcessCommand");
if(CommFunc!=NULL){
(*CommFunc)(IOData);
(*CommFunc)(IOData&(~IO_EN));
}

Form.Show能显示,用Application.ProcessMessage()也能被动地接收一下消息,但调用完成后窗口就无法继续获得交点了.

我该如何做?
ju1 2004-08-14
  • 打赏
  • 举报
回复
物理结构要 问文件格式创始人!
2 你在控制太上如何调用的
SGP 2004-08-12
  • 打赏
  • 举报
回复
最后顶一下.
SGP 2004-08-11
  • 打赏
  • 举报
回复
呼……
SGP 2004-08-09
  • 打赏
  • 举报
回复
在这里也没人回答吗?
庄鱼 2004-08-09
  • 打赏
  • 举报
回复
问题是你贴出地方了!
作为Delphi,你该到Delphi专区去,而不是在这里。
另外,这里的人对你的问题并不了解:你是要改你手中Delphi代码呢,还是要提供C的代码?
在有一点,C的控制台程序是什么概念,不甚了了。因为到这里来的人他会告诉你直接用BCB来完成你得Form及数据库操作,根本无须其它,除非你有足够明确的理由,不然很少有人愿意跟在你后面绕弯子。
shornmao 2004-08-08
  • 打赏
  • 举报
回复
你看一看gdbm的文档再说,它并不要求操作系统的支持,是可以移植的,而且并没有提供数据库方面的支持,只是提供了key的管理而已,你还是要在这个基础上自己增加数据库管理方面的接口的。
完全的嵌入式db也有很多,到sourceforge.net上找一找就有了。
SGP 2004-08-08
  • 打赏
  • 举报
回复
to lbsjs:
什么意思? 这里星级大虾应该不少啊?!
lsdkzkald 2004-08-08
  • 打赏
  • 举报
回复
这里初学者多吧,
SGP 2004-08-07
  • 打赏
  • 举报
回复
to shornmao:
如果只是在linux系统下可能这是个不错的选择,可如果我用在无操作系统的环境中如何办呢?(比方说我用Flash来直接存数据)

我的目的是要小,通用性好,速度快,只是简单的单机使用,不用SQL……
加载更多回复(9)

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧