Ste*_*063 7 c c++ dll visual-c++ turbo-c
我必须使用旧的Borland编译器(BC 5)支持用C编写的旧应用程序.
不幸的是,我们使用的旧TCP/IP库开始显示它的年龄,并且遇到了Vista和Win7机器的问题.
我有一个新的MS Visual C++函数库,我想用它来制作一个可以从Borland C调用的DLL.
所以,我有两个问题:1)如何使一个Visual C++ DLL可以从Borland C程序调用,2)如果它是可调用的,如何从普通的旧C调用C++函数?
理想情况下,整个项目应该转换为Visual C,但是有许多遗留功能可以使该项目成为一项重大任务!我正在寻找一个快速的补丁来让它保持活力一段时间:)
史蒂夫
使用Visual C++编写DLL,将其接口公开为Windows STDCALL C函数.Windows API函数类似地完成.您在界面中公开的那些功能将执行您在程序中替换所需的功能.在DLL内部,放弃调用新的MS VC++库.
因此,要获得一个可从C调用并使用STDCALL堆栈协议的函数,请执行以下操作:
extern "C" int __stdcall foo();
您还必须添加信息以从DLL导出函数.您可以在声明中明确地这样做:
extern "C" __declspec(dllexport) int __stdcall foo();
但是你需要一个单独的头文件用于你的BorlandC代码(它可能有不同的语法来指定DLL导入部分和STDCALL部分).在Visual C++中,您在客户端中使用的声明类似于:
extern "C" __declspec(dllimport) int __stdcall foo();
| 归档时间: |
|
| 查看次数: |
4177 次 |
| 最近记录: |