gpt4 book ai didi

c - 在 excel-vba 中使用 DLL

转载 作者:太空宇宙 更新时间:2023-11-04 01:48:34 24 4
gpt4 key购买 nike

我很想知道如何在 vba 中声明和使用 dll。我有一个用 C 编写的代码,我想使用 Excel 工作表中的一些数据来测试我的 C 代码。这怎么可能?非常感谢

最佳答案

您必须在 VBA 模块中声明函数:对于命令:

[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])]

对于函数调用:

[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist])] [As type]

一些示例构成了我的一个应用程序:

Public Declare Function apiGetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Declare Function WM_apiGetDeviceCaps Lib "gdi32" Alias _
"GetDeviceCaps" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Declare Function WM_apiGetDesktopWindow Lib "user32" Alias _
"GetDesktopWindow" () As Long
Declare Function WM_apiGetDC Lib "user32" Alias _
"GetDC" (ByVal hwnd As Long) As Long
Declare Function WM_apiReleaseDC Lib "user32" Alias _
"ReleaseDC" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Declare Function WM_apiGetSystemMetrics Lib "user32" Alias _
"GetSystemMetrics" (ByVal nIndex As Long) As Long
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long

编辑以添加 PtrSafe 信息:参见 MSDN PtrSafe Language Reference

在 64 位版本的 Office 中运行时,声明语句必须包含 PtrSafe 关键字。 PtrSafe 关键字断言 Declare 语句在 64 位开发环境中运行是安全的。将 PtrSafe 关键字添加到 Declare 语句仅表示 Declare 语句明确针对 64 位,语句中需要存储 64 位(包括返回值和参数)的所有数据类型仍必须修改为使用 64 位数量用于 64 位积分的 LongLong 或用于指针和句柄的 LongPtr。

关于c - 在 excel-vba 中使用 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48383787/

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