-1

我正在 VS2013 上创建一个应用程序,它使用 vspdctl.dll 创建虚拟串行端口对。此虚拟端口用于与我的 PC 上运行的其他应用程序进行通信。

当我使用 Platform=win32 配置编译/链接时,.exe 文件已成功创建,并且虚拟端口创建工作正常。注意:我的机器是 x64

当我更改平台 = 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;

};

4

1 回答 1

0

有可用的 vspdctl64.dll 我以前没有注意到。

于 2015-12-17T11:36:07.997 回答