1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

Тема в разделе "С и С++", создана пользователем Guest, 15 дек 2003.

Статус темы:
Закрыта.
  1. Guest

    Guest Гость

    Репутация:
    0
    Тупо на 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 - никакой разницы...
     
  2. kagor

    kagor Гость

    Репутация:
    0
    Guest
    А функцию fnTest() указал в файле *.def , в разделе EXPORTS???
     
  3. admin

    admin Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2003
    Сообщения:
    2.754
    Симпатии:
    1
    Guest
    Видел я похожее на другом форуме
    если не получится как kagor советует, то добавь тогда в сорец на C#
    [DllImport("test.dll")]
    и положи свою test.dll куда-нть рядом с твоей прогой. может с путями при компиляции чего-то не то
    и вообще запусти dumpbin /exports test.dll - есть там имя fnTest ?
     
  4. kagor

    kagor Гость

    Репутация:
    0
    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
     
  5. Гость

    Репутация:
    0
    попробуй в C++ сорце описать fnTest как extern "C"
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей