混合语言编程[求助]
八卦之魂 2007-07-05 04:11:07 有套 delphi 代码包含了好几个类(包括文件操作,多线程,socket通信等功能),全部被我封装到了一个DLL里面并提供了相应的导出函数。
DLL里面包含了两个全局变量(一个是delphi本身的VCL类,一个是我封装进DLL的类),使用 create(delphi的构造函数) 和 free (delphi调用析构函数)进行处理的.
现在的问题是,我用 delphi 调用这个 DLL 的时候,一切正常;
如果用VC调用这个 DLL,执行 freelibrary 的时候报错,出现类似 ("0X00fe8559"指令引用的"0x0122638d"内存。该内存不能为"read") 的字样; 如果用 C# 调用这个DLL,在执行 dllimport 时,VS就死掉了(我不会C#,这是朋友帮忙测试的)
我想请问一下这种情况是什么原因引起的,有没有办法解决?