2016-08-23 143 views
0

我有一个Word创建的加载项,它通过我用c#写的使用visual studio的api与第三方cmd程序进行通信。通信使用stdin和stdout进行。 该程序适用于Windows的Word 2007,2010,2013,2016。Word 2016 vba加载宏的Mac

我也成功地将它移植到Mac版Word 2011中。这里的api是用c编写的,但仍然使用stdin和stdout。 mac上的api是一个dylib,我可以在visual basic编辑器中参考。 我在Mac版Office 2016中复制此问题时遇到问题。 由于新的安全限制,我怀疑它可能是不可能的。 当我尝试引用一个文件时,我只能选择.tlb文件(类型库)。我只在Windows上使用visual studio创建了tlb文件,并不知道如何在Mac上执行此操作。

任何人都可以回答,如果我想要做的甚至可能在2016年的Mac版Office版本中,以及我可能在哪里可以找到有关如何创建可引用文件的文档?

FYI:加载项被称为WordMat:www.eduap.com

遵循以下 我有麻烦声明功能在我的lib从@erik信息附加信息。这里是我的声明声明: Declare PtrSafe Function VBstrlen Lib "/Library/Application Support/Microsoft/Office365/User Content.localized/Add-Ins.localized/libMaximaConnection.dylib" (ByVal s As String) As LongPtr

函数是一个简单的测试函数,它返回一个字符串的长度。声明函数按照预期在Word 2011中使用上述路径进行工作。

报告的错误是错误53文件找不到

的dylib是32位编译,所以我不希望因为办公室2016年64位升级它的工作,但我希望由于Word 2011会报告错误453 DLL,因此无法找到

+0

的Mikael,感谢张贴这个问题。我想知道你是否设法找到解决这个问题的办法。你能够更新/分享? – Arieleo

+0

是的。产生的错误是误导。当dylib更新并编译为64位时,问题已解决。上面提到的声明声明是可以的。 –

+0

我会尝试;感谢更新! – Arieleo

回答

0

Office 2016是沙盒,只有有限的权利才能读取生活在特定位置的文件。我为安装Mac Office 2016的用户内容编写了本文档,您可以从这里开始:http://macadmins.software/docs/UserContentIn2016.pdf

具体来说,dylib必须位于〜/ Library/Group Containers/UBF8T346G9.Office/User Content.localized/Add-Ins中。本地化/如果它们是针对每个特定用户安装的,或者安装在/ Library/Application Support/Microsoft/Office365 /用户Content.localized/Add-Ins.localized /中,如果它们在计算机上安装一次以供所有用户共享。

Office 2016应用程序无法再读取任意文件位置。

另外,当您尝试添加文件引用时,无法选择任何非typelib文件可能是一个错误。我得看一看。

Schwieb (首席软件工程师,苹果平台经验集团,微软公司)

+0

非常感谢。这看起来有希望。我可以在参考文献中选择任何文件,但它不会显示在参考文献中。如果文件位于正确的位置,它可能会工作。 –

+0

好吧,我现在尝试两个文件夹位置没有任何运气。 –

+0

当我尝试选择dylib时,我无法选择它 - 它变灰了。默认文件扩展名是一个可以更改为tlb或'任何文件'的单词文件。选择'任何文件'都无济于事。我再一次对字母文件夹名称进行了多次检查。 仅供参考如果我去一个我可以选择一个单词文件的位置,并选择'任何文件',那么这个单词文件也会变灰。运行优胜美地10.10.4。 –