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