hummingbird
@hummingbird

Как решить проблему при использовании Properties.Settings в DllImport?

Здравствуйте!

Если прописывать в DllImport путь подобным образом:
@"C:\path\library.dll"

То все нормально.

Но если этот кусок полностью заменить на это:
Properties.Settings.Default.dllPath

То вылезает ошибка:
9e0b7df3ed054002b63d11bd070ea2c1.png

То что символ @ запрещает дальнейшее форматирование строки (по сути константа) я знаю. Интересует как исправить с использованием Properties.Settings, либо как по-другому хранить подобного рода пути, чтобы не дублировать их в коде, а вытаскивать из конфига?
  • Вопрос задан
  • 142 просмотра
Пригласить эксперта
Ответы на вопрос 1
petermzg
@petermzg
Самый лучший программист
Если не хотите линковать статически, то можно загрузить динамически.
Пример:
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
 private delegate int MultiplyByTen(int numberToMultiply);

IntPtr pDll = NativeMethods.LoadLibrary(@"PathToYourDll.DLL");
IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pDll, "MultiplyByTen");
MultiplyByTen multiplyByTen = (MultiplyByTen)Marshal.GetDelegateForFunctionPointer(
                                                                                        pAddressOfFunctionToCall,
                                                                                        typeof(MultiplyByTen));
int theResult = multiplyByTen(10);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы