我现在有一个DELPHI做的EXE程序,有源代码。
为了将它转变为DLL,我新建了一个DLL,将EXE中的pas及res都加入到了这个DLL中,编译后这个DLL可以顺利调用,但是涉及到跨窗体调用时会出现access violation at address之类的错误,点击确定程序还是可以运行正常。
是这样的意思:
EXE程序中原本有两个窗体Form1和Form2,Form1中有这样的语句:Form2.a := ......
这句代码在exe程序中运行完全正常,但是到dll中总会报错,我试过如下的解决方案:
if not assigned(Form2) then
Form2 := TForm2.Create;
Form2.a := ......这样之后就运行正常了,但是原来的Form1中还有这样的变量,
property ItemIndex: integer read FItemIndex write SetItemIndex;程序中有涉及到调用这个ItemIndex时就会报错,请问这种情况要怎么处理?本人表达能力不好,说了这么多不知道大家听懂我的问题没,如果有什么不明白的,请大家回复。在此先谢了!
为了将它转变为DLL,我新建了一个DLL,将EXE中的pas及res都加入到了这个DLL中,编译后这个DLL可以顺利调用,但是涉及到跨窗体调用时会出现access violation at address之类的错误,点击确定程序还是可以运行正常。
是这样的意思:
EXE程序中原本有两个窗体Form1和Form2,Form1中有这样的语句:Form2.a := ......
这句代码在exe程序中运行完全正常,但是到dll中总会报错,我试过如下的解决方案:
if not assigned(Form2) then
Form2 := TForm2.Create;
Form2.a := ......这样之后就运行正常了,但是原来的Form1中还有这样的变量,
property ItemIndex: integer read FItemIndex write SetItemIndex;程序中有涉及到调用这个ItemIndex时就会报错,请问这种情况要怎么处理?本人表达能力不好,说了这么多不知道大家听懂我的问题没,如果有什么不明白的,请大家回复。在此先谢了!
解决方案 »
- cxTreeList如何获得check状态实现联动?
- message 关键字的用法?
- WebBrowser问题!如何区分点击弹出和自动弹出的新窗口?只想屏蔽自动弹出的!
- 编译能通过,但调试时出错,请问这 是什么原因呢?我是初学者,请各位大师指点,急,谢谢!
- 救命啊,又一个问题从dbgrid选一条记录点修改后,在edit,combobox里的东西都不能动弹了
- 如何在ADOQUERY的数据集中添加类似"总计"之类的一条记录?
- edit的特殊功能?
- 怎么动态的产生一个编辑框
- 关于错误捕获,我的代码错在那里?
- Delphi中如何简便地将当前的记录复制,再将复制的记录插入原来的Table中?
- Delphi socket两个局域网之间通讯问题
- 有人做棋牌游戏外挂吗?
if not assigned(Form2) then
Form2 := TForm2.Create;
上面代码可以运行,就是因为判断form2不存在,然后创建了实例,才可以后续访问
那这个property ItemIndex: integer read FItemIndex write SetItemIndex;应该怎么处理呢?
不好意思哈,可能是我表达得不好,Form的问题已经解决了,是Property的初始化问题