为什么我会收到"unresolved external symbol"消息?
Why am I getting an "unresolved external symbol" message?
我正试图使用IBM的EHLLAPI与他们的个人通讯器终端仿真器接口。我已经从这个页面复制了他们的示例代码,但当我试图构建它时,它给了我一个错误
1>------ Build started: Project: PCOMAPI, Configuration: Debug Win32 ------
1> Source.cpp
1>Source.obj : error LNK2019: unresolved external symbol _hllapi@16 referenced in function _main
1>C:Users[username]DocumentsVisual Studio 2013ProjectsVPARSAPIDebugPCOMAPI.exe : fatal error LNK1120: 1 unresolved externals
我不完全确定这是什么_hllapi@16是,而我在代码中没有看到它。我已经有一段时间没有使用C++了,所以我可能缺少一些简单的东西。代码如下:
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include "hapi_c.h"
int main(char **argv, int argc) {
int HFunc, HLen, HRc;
char HBuff[1];
struct HLDConnectPS ConnBuff;
// Send Key string for HOME+string+ENTER:
char SendString[] = "@0Hello World!@E";
HFunc = HA_RESET_SYSTEM;
HLen = 0;
HRc = 0;
hllapi(&HFunc, HBuff, &HLen, &HRc);
if (HRc != HARC_SUCCESS) {
printf("Unable to access EHLLAPI.n");
return 1;
}
HFunc = HA_CONNECT_PS;
HLen = sizeof(ConnBuff);
HRc = 0;
memset(&ConnBuff, 0x00, sizeof(ConnBuff));
ConnBuff.stps_shortname = 'A';
hllapi(&HFunc, (char *)&ConnBuff, &HLen, &HRc);
switch (HRc) {
case HARC_SUCCESS:
case HARC_BUSY:
case HARC_LOCKED: // All these are OK
break;
case HARC_INVALID_PS:
printf("Host session A does not exist.n");
return 1;
case HARC_UNAVAILABLE:
printf("Host session A is in use by another EHLLAPI application.n");
return 1;
case HARC_SYSTEM_ERROR:
printf("System error connecting to session A.n");
return 1;
default:
printf("Error connecting to session A.n");
return 1;
}
HFunc = HA_SENDKEY;
HLen = strlen(SendString);
HRc = 0;
hllapi(&HFunc, SendString, &HLen, &HRc);
switch (HRc) {
case HARC_SUCCESS:
break;
case HARC_BUSY:
case HARC_LOCKED:
printf("Send failed, host session locked or busy.n");
break;
default:
printf("Send failed.n");
break;
}
HFunc = HA_DISCONNECT_PS;
HLen = 0;
HRc = 0;
hllapi(&HFunc, HBuff, &HLen, &HRc);
printf("EHLLAPI program ended.n");
return 0;
}
我的链接器标志是:
- /OUT:"C:\Users[用户名]\Documents\Visual Studio2013\Projects\VPARSAPI\Debug\POCMAPI.exe"/MANIFEST/NXCCOMPAT
- /PDB:"C:\Users[用户名]\Documents\Visual Studio
- 2013\Projects\VPARSAPI\Debug\POCMAPI.pdb"/DDYNAMICBASE"kernel32.lib"
- "user32.lib"gdi53.lib"winspool.lib"comdlg32.lib""advapi32.lib"
- "shell32.lib"ole32.lib""oleaut32.lib"uuid.lib"odbc32.lib"
- "odbccp32.lib"/DEBUG/MACHINE:X86/INCREMENTAL
- /PGD:"C:\Users[用户名]\Documents\VisualStudio2013\Projects\VPARSAPI\Debug\POCMAPI.pgd"/SUBSYSTEM:CONSOLE
- /MANIFESTUAC:"level='asInvoker'uiAccess='false'"
- /ManifestFile:"调试\ PCOMAPI.exe.intermediate.manifest"
- /错误报告:PROMPT/NOLOGO/TLBID:1
这是一个链接器错误。您需要将EHLLAPI库的.lib文件(导入库)传递给链接器。
事实上,看看文档,这个库中有很多.lib文件。你需要仔细研究文档,找出你需要的。
如编译和链接一节所述,您必须包含pcscal32.lib以进行静态链接,这样才能解析*hapi_c.h*中的符号。
相关文章:
- CppSQLite 抛出"LNK2019: unresolved external symbol"错误
- Visual Studio中的wxwidgets应用程序给出错误"LNK2019 unresolved external symbol"
- 在 C++ 中嵌入 V8 会导致与 libcpp 相关的"unrecognized external symbol"错误
- 我的游戏引擎的 spdlog 日志记录出现奇怪的"unresolved external symbol"错误
- 如何修复"unresolved external symbol _gladLoadGLLoader referenced in function _main"和"unresolved external
- 通过覆盖虚拟函数来获取'unresolved external symbol'
- 运行时动态加载库时出错"unresolved external symbol"
- 为什么 VS C++链接器返回具有混合 DLL 转发的"LNK2001: unresolved external symbol"?
- Visual Studio 2017 中的 MySQL 连接器/C++ 错误"Unresolved external symbol _get_driver_instance"
- CMake 和 Visual Studio 出现"unresolved external symbol"错误
- DLL 注入编译 "unresolved external symbol" Visual Studio C++
- "Error LNK2001: unresolved external symbol _main"仍然存在
- QT 单元测试 moc "unresolved external symbol" for QMetaObject
- 主外部功能的C++ "unresolved external symbol"
- 错误 : "error LNK2019: unresolved external symbol"
- 为什么我的代码生成"Unresolved external symbol"错误?
- 使用三角形库时的"unresolved external symbol _triangulate"
- 如何修复" Error LNK2019 : unresolved external symbol ... "
- 问题:"error LNK2019: unresolved external symbol"
- 为什么我会收到"unresolved external symbol"消息?