在VC中使用用DELPHI编写的DLL,声明方式和声明别的DLL没什么差别啊!
只是要注意的是,在Delphi的DLL中的函数要使用通用接口,如(PChar,对应VC中的char *)等,如果用了Delphi特有的数据类型,如String,用VC调用就可能出问题
只是要注意的是,在Delphi的DLL中的函数要使用通用接口,如(PChar,对应VC中的char *)等,如果用了Delphi特有的数据类型,如String,用VC调用就可能出问题
解决方案 »
- 如何让绘图限定在指定区域内,mfc
- 关于Dock窗口最小化和恢复
- 我开发的播放器源码下载
- 正在做UML的逆向工程,顺便写个新语言及其编译器,你们希望它有什么特性?
- 又开一贴,昨天的回答没搞定:最大化窗口的问题(注意窗口的标题是不确定的)
- 求助:我用CShockwaveFlash定义了一个flash对象,可为何create后看不见啊?
- 完了,可用分快没了,我不想换ID,谁能给我加点分啊?
- 一台计算机两个MFC程序出现“未响应”
- _variant_t 是个什么东西?
- 关于CString
- 急,用Visual C++ 如何调用COM组件?
- 请问我在本网站下载的例子好多都是用其他语言开发的需要MFC42UC.DLL
你会调用VC写的dll吗?
一样的.
在VC下用C重新写一下dll输出的各函数的声明。当然,如果有字符串参数的话一定要用PCHAR类型(在DELPHI)中最后别忘了将.lib加入
Project Setting->Link
Object/Library Modules里
倒是可以用impdef.exe 来产生DEF文件,在必要的地方还要作一下改动。
2,Delphi DLL 的导出函数应该用C方式声明。VC 中自然要对应声明。
3,查看产生DEF文件内容,看看函数名称与你调用时的声明是不是相同。
至于,函数导入声明倒是好办。
类似
extern"C" __declspec(dllimport) FName();
遇到其它问题再具体说。
不要用DCU,在工程里设一下就可以了。
这正是 Borland 的高明之处
可不可以讲的再详细一点!
用BCB中的impdef.exe 产生的DEF 是文本文件,那该没有什么兼容性问题。
lib /DEF:defname.def
2。 用C语言写xxx.h ,将函数原型一一写出,注意要用extern"C" __declspec(dllimport) FName( var list);3。 将xxx.lib加入需要Project Setting->LinkObject/Library Modules里,注意把xxx.lib 拷贝到你的指定目录下
4. 在vc中即可用dll中的函数