gpt4 book ai didi

c++ - 在 Office for Mac VBA 中调用 dylib 函数

转载 作者:行者123 更新时间:2023-11-30 04:07:30 25 4
gpt4 key购买 nike

我试图从一个简单的 Word for Mac 宏调用一个存储在一个简单的 dylib 文件中的简单函数,

我正在 OS-X Mountain Lion 上使用 Xcode5 创建 .dylib,并从 Word for Mac 2011 调用它。

首先是 libWord.dylib:

测试.h

#ifndef __Word__Test__
#define __Word__Test__

bool testFunc();

#endif

测试.cpp

#include "Test.h"

bool testFunc(){
return true;
}

和宏:

Word 宏

Private Declare Function testFunc Lib "/Users/usrName/Documents/libWord.dylib" () As Boolean

Sub TestLibFunc()

Dim b As Boolean
b = testFunc
StatusBar = b

End Sub

宏可以找到 dylib(我已经放在上面的目录中),但一直抛出:

“运行时错误‘453’:找不到指定的 DLL 函数”

我还尝试将函数声明为类的一部分:

class testClass{
static bool testFunc();
}

bool testClass::testFunc(){
return true;
}

然后尝试使用上面的 Declare 语句和一个带有别名的语句来调用它:

Private Declare Function testFunc Lib "/Users/usrName/Documents/libWord.dylib" Alias "testClass::testFunc" () As Boolean

我还尝试将库路径名中的“/”替换为“:”,所有这些都给出了相同的结果。

那么,我错过了什么?就我见过的所有例子而言:

VBA Shell function in Office 2011 for Mac

Return string to VBA in MacOSX

http://social.msdn.microsoft.com/Forums/en-US/b060f291-0754-4e85-a7b9-e64259e6baad/vba-using-shared-library-office-2011-mac?forum=isvvba

上面的应该工作(就像 Remote 应该正好在你离开的地方一样)。但显然我一定做错了什么,欢迎任何关于在哪里看的指示(越明显和羞辱越好)。

最佳答案

与其查找损坏的名称,我怀疑最简单的方法是包装您的函数声明:

extern "C" {
bool testFunc();
}

关于c++ - 在 Office for Mac VBA 中调用 dylib 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22470863/

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