Это аналогичный вопрос this one.Невозможно найти точку входа (cpp)
Я хочу экспортировать простую функцию из C++, которую вызывается C# через PInvoke. Это мое определение функции:
int fnValue()
{
return 42;
}
И это определение экспорта в .h
файле:
__declspec(dllexport) int fnValue();
Это, как я PInvoke функцию:
[DllImport("WhatDll.dll")]
public static extern int fnValue();
Простой, правильно? Но я получил
System.EntryPointNotFoundException: Не удалось найти 'точку под названием 'запись fnValue' в DLL «WhatDll.dll'
Я использую DUMPBIN, чтобы проверить, что внутри WhatDll
, и это то, что у меня есть:
00000000 характеристики 4CFB5C95 время дата штемпеля Вс Дек 05 17:34:13 2010 0.00 версияпорядкового баз 4 количества функций 4 количества имен
порядкового имя намека RVA
1 2 00011014 [email protected]@YAHXZ = @ILT+15([email protected]@YAHXZ)
Обратите внимание, что есть некоторая тарабарщина за именем функции fnValue
.
Это довольно озадачивает. Есть идеи?
@ Спасибо, любая причина, по которой мне нужно «extern» C «` спереди? – Graviton 2010-12-05 10:40:08