使用Comport出现[ILINK32 Error] Error: Unresolved external '__fastcall Cport::TCustomComPort::SetPortA(const System::AnsiString)'
在C++Builder2007里面使用Comport控件(http://comport.sf.net) ,编译的时候出现
[ILINK32 Error] Error: Unresolved external '__fastcall Cport::TCustomComPort::SetPortA(const System::AnsiString)' referenced from D:THERMALPHOTOGUI-NEW-1115-FINAL VERSIONRELEASE_BUILDUNIT1.OBJ
解决办法:
1.修改bdsinclude下面的winspool.h文件
修改前:
BOOL WINAPI SetPortA( IN LPSTR pName, IN LPSTR pPortName, IN DWORD dwLevel, IN LPBYTE pPortInfo ); BOOL WINAPI SetPortW( IN LPWSTR pName, IN LPWSTR pPortName, IN DWORD dwLevel, IN LPBYTE pPortInfo ); #ifdef UNICODE #define SetPort SetPortW #else #define SetPort SetPortA #endif // !UNICODE
修改后,就是添加条件编译#ifndef DONT_USE_WINSPOOL_SETPORTA
#ifndef DONT_USE_WINSPOOL_SETPORTA
BOOL WINAPI SetPortA(
IN LPSTR pName,
IN LPSTR pPortName,
IN DWORD dwLevel,
IN LPBYTE pPortInfo
);
BOOL WINAPI SetPortW(
IN LPWSTR pName,
IN LPWSTR pPortName,
IN DWORD dwLevel,
IN LPBYTE pPortInfo
);
#ifdef UNICODE
#define SetPort SetPortW
#else
#define SetPort SetPortA
#endif // !UNICODE
#endif //!DONT_USE_WINSPOOL_SETPORTA
然后,在bcb的project选项里面,添加条件编译DONT_USE_WINSPOOL_SETPORTA
2.添加定义,当然可直接添加到winspool.h,也可以添加到使用单元前
#define SetPortA SetPort
[参考]http://sourceforge.net/forum/forum.php?thread_id=1363256&forum_id=261327
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。