这个问题我也出现过,
现在已解决,
不过用的什么办法我一下子想不起来了,
让我想想,
好象是DLL和EXE中有样同的东西,
但在两个地方版本不一样造成的!
现在已解决,
不过用的什么办法我一下子想不起来了,
让我想想,
好象是DLL和EXE中有样同的东西,
但在两个地方版本不一样造成的!
解决方案 »
- 常量数组问题
- 如何让用户使用鼠标自定义TEdit的位置和大小
- ADOconnect怎么自定义,设置参数,连接数据库mssql
- 用了线程,PageControl1上的 Memo1就显示不了了。
- 100块大洋寻求我的问题.我真的要吐血了!!!UP有分.
- 谁有用Delphi开发的小游戏游戏源码,跳棋最好。
- 使用select对数据库查询,怎样给查询结果增加一个数据库的表里面没有的空字段?
- 时间查询的问题
- 关于连接DCOM时的“RPC程序…版本不兼容”
- 编程急用>>>>有谁能用通俗的语言解释一下AutoCAD中模型空间和图纸空间的差别,各自的应用范围?互相切换的目的?
- 请问广州与深圳有哪几个大型的人才市场?
- 各位,我有一个关于使用sql进行查询后返回结果集的问题,请过路的大虾帮我解决。问题是这样的……
procedure EnterDllForm(AOwner:TComponent);stdcall;export;
begin
with TFormDll.Create(AOwner) do
begin
Show;
end;
end;
调用时:
EnterDllForm(self);
另外,我是静态调用DLL,在主程序启动时,错误就产生了。
1、在exe先调用CoInitialize(nil)
2、在exe中建立ADO连接,传递到dll
建议你将所有的公式文件放在同一个目录下,以免有不同的版本!
然后调用一下coInitalize试试
问题又解决啦。我在Project文件中uses ActiveX
然后
Application.Initialize;
CoInitialize(nil);
Application.CreateForm(TForm1, Form1);
Application.Run;
就一切OK。谢谢恶人。to:liang_z(千山一刀之忍者神龟)
谢谢千山。
而且你跟本就不知道在什么时候,什么地方去调用,
我以前也有这个问题,我记得就是版本不一至造成的!
我在Project文件中uses ActiveX
然后
Application.Initialize;
CoInitialize(nil);
Application.CreateForm(TForm1, Form1);
Application.Run;
就一切OK。程序运行很正常呵。
千山,你试试看?
你不要去用ActiveX,和CoInitialize(nil);
我现在确信是版本不一至!如果你用这种方法解决的话以后可能还会就错!
除非你的问题是因为用了一些第三方开发的ActiveX控件,如Excel、Word等!
相信我,不用调用CoInitialize(nil)!
但是在Dll里面引出窗体,还有好多问题,例如说:我的MDI子窗口上自己写的控件用到了VCL定义的消息:CM_MOUSEENTER,CM_MOUSELEAVE,放入DLL中就不会响应这个消息了!奇怪!
我还不太清楚你的问题怎么解决的,但是你可以查看一下打开MDI子窗口后,MDI父窗口的MDIChildCount是否为0,如果为0可能你会出很多问题的。
有问题我们继续讨论,最近做这个东西我还遇到其他一些问题!
因为我刚刚测试了一下,带包编译以后,我再MDI子窗口中映射的VCL自定义的消息:CM_MouseEnter和CM_MOuseLeave可以响应了!!!
我越来越糊涂了@_@ #$%#^$&%^*&^*^&( 呵呵,各位老大,继续讨论!
带包编译Delphi做了什么手脚!应该说,带包编译后导出的MDI窗口就和普通使用没有区别。而且我看了一下,在动态库内的Application就是主窗口的Application了,估计Screen也是一样了(才能对MDIChild计数)。
but why???
如果要分,没问题,我尽力而为之,给你加分!