c++ - 有人知道如何将 c++dll 与 vb6 连接吗?
问题描述
目前,我被要求将 c++ dll 与 vb 6 连接起来,并且我被提供了一行关于如何使用它的示例代码,下面是示例代码
Public Declare Function ABC_ConnectDevice Lib "ABC_API.dll" (ByVal strCommPort As String, ByVal lngBaudRate As Long, ByRef RespData As sRespData) As Long
这是我目前编写并需要连接的代码
ABC_API_API long __stdcall ABC_ConnectDevice(long dwPort, long dwSpeed)
{
long lngResult, lngRtn;
char strMsg[512];
memset((void*)strMsg, '\0', sizeof(strMsg));
READERHANDLE ptrCardDispenser;
try {
lngResult = F3_Connect(dwPort, dwSpeed, NULL, &ptrCardDispenser);
if(lngResult == 0) {
g_Reader = &ptrCardDispenser;
lngRtn = 0;
} else {
lngRtn = -1;
}
return lngRtn;
} catch (exception& e) {
sprintf_s(strMsg, "Exception@ReadIni: %s", e.what());
WriteError(strMsg);
return -1;
}
}
如您所见,c++ 中的参数是 long dwport 和 long swSpeed,所以当 vb6 部分时,我添加了那个 2 参数,但是当我运行它时,我得到的是编译错误,参数不是可选的。下面是我在表单和模块中使用的代码
Private Sub btnOpenConnection_Click()
Dim openComm As Long
openComm = MTK_ConnectDevice()
MsgBox openComm
End Sub
下面是我在模块中编写的代码
Public Declare Function ABC_ConnectDevice Lib "ABC_API.dll" (ByVal lngdwPort, ByVal lngdwSpeed) As Long
我目前假设我可能传入了错误的参数,但我在 C++ 中使用的参数确实是 dwPort 和 dwSpeed 而已.. 所以我真的对我是否需要传入额外的参数或任何部分做错了一点头绪
这是我实际使用 c++ 和 vb6 的第三天,所以不要对我这么苛刻,我只想知道代码的问题是什么以及我应该如何解决它。可以参考什么样的文档或示例代码。谢谢。
嗨,在参考制造文档后问题已经解决,该文档提到我应该传递什么数据值。感谢所有试图帮助我解决并教我的人。作为 C++ 的初学者,我真的很感激这个社区,它是初学者友好,愿意一步一步教我,即使我们在现实生活中并不认识。感谢所有帮助我解决问题的人。再次感谢你
解决方案
推荐阅读
- arrays - 按键排序自定义字典数组(Swift 通用函数)
- java - 如何在 Spring 中添加来自另一个模块的 bean 依赖项?
- javascript - 如何使用 jquery 选择具有或不具有特定“alt”属性的图像
- visual-studio-code - 在调试模式下运行 PHPUnit 会出现“无法打开 'BaseTestRunner.php':找不到文件”错误
- android - 使用 HttpURLConnection 获取位图数据时是否应该使用 BufferedInputStream?
- php - Ajax To(API 密钥)按钮单击并显示图像而不重新加载
- wix - Wixtoolset - 安装后出现锁定
- python - Python & Kivy - 显示/隐藏框
- mocha.js - 使用 web3 获取 ganache 测试网络上的所有帐户时出错
- reactjs - 在哪里将 opencv.js 添加到 react.js 应用程序以及如何将 cv 实例添加到 js 文件中?