gpt4 book ai didi

c++ - 从 MS 访问调用 dll 函数

转载 作者:太空宇宙 更新时间:2023-11-04 03:49:56 28 4
gpt4 key购买 nike

您好,我正在尝试在 ms access vba 中调用此函数。它只会抛出糟糕的调用约定。我试图重新编译访问但zilch。我之前调用过 dll 函数,所以也许我错过了一些基本的东西,或者可能与 dll 文件不兼容。在此先感谢您的帮助。

我的 MS 访问代码

Private Declare Function StartComm Lib "C:\ComConcert.dll" ( _
ByVal ulPort As Long, ByVal ulBaudRate As Long, ByVal ulByteSize As Long, _
ByVal ulParity As Long, ByVal ulStopbits As Long, ByVal lncontrol As Long) _
As Long

Dim OpnPort As Long
OpnPort = StartComm(3, 9600, 7, 0, 0, 0)

dll 文件 的原始 c 代码。

DLLEXPORT unsigned long StartComm(unsigned long ulPort, unsigned long ulBaudRate, 
unsigned long ulByteSize, unsigned long ulPartity, unsigned long ulStopBits,
unsigned long ulFlowControl);

最佳答案

您的 DLL 中的函数未指定调用约定。因此,我们假设它使用默认值 __cdecl。这意味着它不能从 VBA 访问。您能够调用它的唯一方法是创建一个适配器 DLL,导出一个 __stdcall 函数供 VBA 调用。然后适配器 DLL 可以将调用转发到原始 __cdecl 函数。

关于c++ - 从 MS 访问调用 dll 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21514621/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com