我在VS2013上创建了一个应用程序,它利用vspdctl.dll创建虚拟串口对。此虚拟端口用于与PC上运行的其他应用程序通信。
使用Platform = win32配置编译/链接时,.exe文件已成功创建,并且虚拟端口创建工作正常。 注意:我的机器是x64
当我更改platform = x64时,我的exe再次创建没有任何问题,但仍无法加载dll。它让我觉得vspdctl.dll是一个32位的库。
但我打算在代码中使用其他64位库,这也是我希望在64位应用程序中实现vspdctl.dll的原因。是否有任何64位版本的vspdctl.dll或如何在64位应用程序中实现32位dll。
任何帮助将不胜感激。 谢谢
这是我加载dll
的CreateVSPair函数的代码char CreateVSPair(char *Port1, char *Port2) {
OSVERSIONINFO VersionInfo;
HINSTANCE libInst;
libInst = LoadLibrary(L"C:\\AK47 Data\\Softwares\\SP monitor\\vspdctl.dll");
if (!libInst)
{
libInst = LoadLibrary(L"C:\Windows\SysWOW64\\vspdctl.dll");
if (!libInst)
return -10; /* Couldn't load library */
}
/* Substitute the typedefs above for functions other than CreatePairFn */
std::string s("CreatePair");
CreatePairFn CreatePair = (CreatePairFn)GetProcAddress(libInst, s.c_str());
if (CreatePair == 0) return -20; /* Couldn`t find function */
bool returnvalue = CreatePair(Port1, Port2); /* For example, Port1 = "COM5" and Port2 = "COM6" */
FreeLibrary(libInst);
return returnvalue;
};
答案 0 :(得分:0)
有vspdctl64.dll可用,我之前没有注意到。