Dll на C++ в прогу на С#

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Гость
#1
Тупо на Visual C++ 6.0 создаю dll-ку из wizarda
Ничего в ней не меняю, в ней уже лежит ф-я, переменная и класс.
В проге на C++ это выглядит как:
Код:
#define TEST_API __declspec(dllexport)

TEST_API int fnTest()
{
return 42;
}
В прогу на C# пишу:

Код:
[DllImport("D:\\Release\\test.dll",EntryPoint="fnTest")]
public static extern int fnTest();
...ну и далее в коде ее вызываю.
В итоге - dll-ка открывается, но пишет, что "не может найти точку входа fnTest".
Пробовал без EntryPoint - никакой разницы...
 
K

kagor

Гость
#2
Guest
А функцию fnTest() указал в файле *.def , в разделе EXPORTS???
 

admin

Well-Known Member
08.08.2003
2 754
1
#3
Guest
Видел я похожее на другом форуме
если не получится как kagor советует, то добавь тогда в сорец на C#
[DllImport("test.dll")]
и положи свою test.dll куда-нть рядом с твоей прогой. может с путями при компиляции чего-то не то
и вообще запусти dumpbin /exports test.dll - есть там имя fnTest ?
 
K

kagor

Гость
#4
Guest
Проверил твою DLL’ку, все намана работает. Правда подключал я её в VB 6.0, а не в C#. Но факт в том, что DLL’ка работает:). Проект у меня состоит тока из 2-х файлов TestApi.cpp и TestApi.def, код DLL’ки точно такой же, как у тебя, а TestApi.def файл выглядит так:
Код:
LIBRARY      "TestApi"
DESCRIPTION  'TestApi Windows Dynamic Link Library'

EXPORTS
   fnTest
 
Статус
Закрыто для дальнейших ответов.