2016-08-29 2 views
0

Полагаю, что песочница добавлена ​​в надстройки Excel 2016 на OSX. Это разбивает надстройки, которые имеют в своих функциях заголовок, поступающих из общей библиотеки. Как и в, что-то вроде:Вызвать специальную общую библиотеку из Excel 2016 для mac

Option Explicit 
#If Mac Then 
Private Declare Function PropsSI_private Lib "libCoolProp.dylib" Alias "PropsSI" (ByVal Output As String, ByVal Name1 As String, ByVal Value1 As Double, ByVal Name2 As String, ByVal Value2 As Double, ByVal Ref As String) As Double 
... 

, потому что в надстройке время загрузки, мы не можем назвать какие-либо функции до того, как разделяемая библиотека пыталась быть загружен.

Ранее нам просто нужно было убедиться, что правильная общая библиотека находится в ~/lib, но это больше не работает. Как мы модифицируем нашу надстройку, чтобы мы могли вызвать общую библиотеку?

ответ

1

Итак, получается, что вам нужно поставить положенную библиотеку в /Users/${USER}/Library/Group Containers/UBF8T346G9.Office и убедиться, что эта папка добавлена ​​к системному пути. Один из способов сделать это - сохранить это содержимое в виде файла ~/Library/LaunchAgents/my.startup.plist (очевидно, заменить ihb на соответствующее имя пользователя)

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
<key>Label</key> 
<string>my.startup</string> 
<key>ProgramArguments</key> 
<array> 
    <string>sh</string> 
    <string>-c</string> 
    <string>launchctl setenv DYLD_LIBRARY_PATH "/Users/ihb/Library/Group Containers/UBF8T346G9.Office"</string> 
</array> 
<key>RunAtLoad</key> 
<true/> 
</dict> 
</plist> 
Смежные вопросы