Долгое время читатель, первый постер.Однажды я надеюсь ответить на вопросы здесь ...
Так что это похоже на: "Невозможно найти точку входа с именем [function] в dll" (преобразование типов c ++ в c #)
Но я не могу применить то же решение ...
По сути, я написал новый метод:
Определено в заголовочном файлеПроект C ++ как:
extern "C" {
__declspec(dllexport) bool IsDataValid();
}
Определен в исходном файле проекта C ++ как: (только подпись)
extern bool __cdecl IsDataValid() {
//function stuf......... returns a bool
}
Импортирован в приложение форм C # в проекте C # как:
[DllImport("CarChipSDK_C_Sharp.dll", EntryPoint = "IsDataValid")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool IsDataValid();
Вызывается из того же места в файле C # форм .cs, что и:
bool isDataValid = IsDataValid();
Возвращается исключение с сообщением:
"Не удалось найти точку входа 'IsDataValid ()', названную в DLL 'CarChipSDK_C_Sharp.dll'.
Я использовал dumpbin.exe и средство обхода зависимостей для DLL-файла, сгенерированного из кода c ++, и онопоказывает, что у него есть точка входа IsDataValid ().
Вся помощь очень ценится ...
Проблема решена!Глупо, это был код из предыдущего кооператива в моей нынешней компании, оказалось, что он читал .dll из папки bin / release, где я собирался в папку bin / debug.Должен был знать.Мои искренние извинения.