Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DLL-ка из MSVC++6, и Delphi7 
:(
    Опции темы
OXOTHUK
  Дата 21.9.2005, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 21.9.2005

Репутация: нет
Всего: 6



Люди! Я сделал на MSVC++6 DLL-ку в которой есть экспортируемые структура и функция
Код

struct EC
{
int num;
char* err;
};

EC DLLFunc(char *str[]);


Я сделал так:
У меня 2 файла (заголовочный и .cpp)

Код

//DLLib.cpp

#include "stdafx.h"
#include "DLLib.h"

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
                                         )
{
        switch (ul_reason_for_call)
        {
                case DLL_PROCESS_ATTACH:
                case DLL_THREAD_ATTACH:
                case DLL_THREAD_DETACH:
                case DLL_PROCESS_DETACH:
                        break;
    }
    return TRUE;
}

DLLIB_API EC DLLFunc(char *str[])
{
//Здесь Код
}


и

Код

//DLLib.h

#ifdef DLLIB_EXPORTS
#define DLLIB_API __declspec(dllexport)
#else
#define DLLIB_API __declspec(dllimport)
#endif

struct EC
{
        int num;
        char * err;
};

DLLIB_API EC DLLFunc(char *str[]);


Скомпилировал. Мне надо вызвать эту функцию в дельфи. Я делал так
Код

type EC = record
num: integer;
err: string; end;

function DLLFunc(str: array of string): EC; External 'DLLib.dll';


Но он говорит что не может найти точку входа. В вижуале у меня есть функция входа. Как можно подключить её?!
PM MAIL   Вверх
_hunter
Дата 21.9.2005, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



во-первых попробуй переименовать точку входа в DllEntryPoint ( билдер именно ее ожидает )
во-вторых позаворачивай все экспортируемые функции в extern “C”


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
np9mi7
Дата 21.9.2005, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 5
Всего: 10





--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
Romikgy
Дата 22.9.2005, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 8
Всего: 146



Цитата(OXOTHUK @ 21.9.2005, 18:22)
function DLLFunc(str: array of string): EC; External 'DLLib.dll';

Возможно это поможет
function DLLFunc(str: array of string): EC;sdtcall; External 'DLLib.dll';


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.