小弟某项目上层应用VC程序想静态调用某硬件的库.lib文件来直接调用相关函数,鉴于时间关系,本人使用CB编写改造生成的.lib文件不能静态加载到VC工程中,报上述LNK1136错,从CSDN上搜索得到
一.“C Builder可以用VC++写的dll.用BIN下的ImpLib.exe 格式为:ImpLib "ab.lib" "ab.dll"就可以了。这是因为VC++和Borland C++ 的编译系统不相同。 VC用COFF. BC++用OMF.因此要用impLib对VC++写的DLL生成一个导入库(lib)就可以了。如要VC中用BC++的DLL则只能动态调用。 ”
二.“C++Builder用的Lib是OMF格式的,VC的是COFF格式,不能直接用。”
三。“BCB中只提供了Coff2Omf的工具,将VC提供的lib转换成C++Builder需要的格式。
倒过来转换的工具,Borland官方没有提供。我在网上找了一个,你可以试试:
http://greybird.developpez.com/fichiers/Omf2Coff.exe”
大家的经验好像告知不能静态引用,第三位的相关exe也下载,但是使用有点问题?今天询问同事,告知可否考虑使用__cdecl来代替目前CB中的_stdcall来生成相关的.lib,.dll文件等供VC上层静态引用?大家是否能给予相关建议和帮助,是否VC能静态引用CB编写生成的.lib文件,附上某函数原型和.h文件定义
.cpp文件
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return TRUE;
}
extern "C" bool __export __stdcall EppEnableInput(int hEppHandle);
.h文件
extern "C" __declspec(dllexport) bool EppEnableInput(int hEppHandle);
[此贴子已经被作者于2007-8-2 23:18:39编辑过]