На самом деле, я получил С++ (рабочую) DLL, которую я хочу импортировать в свой проект С#, чтобы вызвать его функции.
Он работает, когда я указываю полный путь к DLL, например:
string str = "C:\\Users\\userName\\AppData\\Local\\myLibFolder\\myDLL.dll";
[DllImport(str, CallingConvention = CallingConvention.Cdecl)]
public static extern int DLLFunction(int Number1, int Number2);
Проблема в том, что он будет устанавливаемым проектом, поэтому папка пользователя не будет одинаковой (например: pierre, paul, jack, mum, dad,...) в зависимости от компьютера/сессии, где он будет запущен на.
Поэтому я бы хотел, чтобы мой код был немного более общим, например:
/*
goes right to the temp folder of the user
"C:\\Users\\userName\\AppData\\Local\\temp"
then go to parent folder
"C:\\Users\\userName\\AppData\\Local"
and finally go to the DLL folder
"C:\\Users\\userName\\AppData\\Local\\temp\\myLibFolder"
*/
string str = Path.GetTempPath() + "..\\myLibFolder\\myDLL.dll";
[DllImport(str, CallingConvention = CallingConvention.Cdecl)]
public static extern int DLLFunction(int Number1, int Number2);
Большое дело в том, что "DllImport" желает параметр "const string" для каталога DLL.
Итак, мой вопрос: Что можно сделать в этом случае?