我创建了一个Word加载项,它通过使用visual studio在c#中编写的api与第三方cmd程序进行通信。使用stdin和stdout进行通信。 该计划适用于Windows 2007,2010,2013,2016。
我也成功将其移植到Word 2011 for Mac。这里的api是用ccode编写的,但仍然使用stdin和stdout。 mac上的api是一个dylib,我可以在visual basic编辑器中引用它。 我在2016版的Office for Mac上无法复制这个问题。 由于新的安全限制,我怀疑这可能是不可能的。 当我尝试引用文件时,我只能选择.tlb文件(类型库)。我只在Windows上使用visual studio创建了tlb文件,并且不知道如何在Mac上执行此操作。
任何人都可以回答,如果我试图在2016版的Office for Mac上做到这一点,我可能会找到有关如何创建可以引用的文件的文档吗?
仅供参考:加载项名为WordMat:www.eduap.com
以下来自@erik的信息的其他信息
我在我的lib中声明函数时遇到了麻烦。这是我的声明声明:
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位编译的,因此我不希望它在Office 2016的64位升级后工作,但我预计错误453 DLL无法定位如Word 2011报告。
答案 0 :(得分:2)
Office 2016是沙盒,具有有限的权限来读取位于特定位置的文件。我写了这篇关于为Mac Office 2016安装用户内容的文档,您可以从http://macadmins.software/docs/UserContentIn2016.pdf
开始具体来说,dylib必须位于〜/ Library / Group Containers / UBF8T346G9.Office / User Content.localized / Add-Ins.localized /是否为每个特定用户安装,或者在/ Library / Application Support / Microsoft中/ Office365 / User Content.localized / Add-Ins.localized /如果它们在计算机上安装一次,供所有用户共享。
Office 2016应用无法再读取任意文件位置。
另外,当您尝试添加文件引用时无法选择任何非typelib文件可能是一个错误。我得去看看。
Schwieb (首席软件工程师,Apple Platform Experiences Group,Microsoft Corporation)