for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  

Список Форумов  :: Архив конференции по VFP до 2005 года
   :: Помощь сайту :: 

dll (C++Builder) - ошибка
AlexFV

Сообщений: 268
Откуда: Воронеж
Дата: 21.03.05 09:04:18ОтветитьЦитировать
Создал в Buildere dll c функцией dllF1. Код:
//---------------------------------------------------------------------------  
    
  #include <windows.h>  
  #include <mydll.h>  
  #pragma argsused  
  int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)  
  {  
          return 1;  
  }  
    
  __declspec(dllexport) int dllF1(int p){  
          return ++p;  
  }  
  //------------------------------

В заголовочном файле mydll.h описал эту функцию:
int dllF1(int p);

Хочу вызвать её из VFP:
DECLARE integer dllF1 in mydll.dll  
  a=dllF1(5)
На второй строке возникает ошибка:
Cannot find entry point dllF1 in the DLL Что не так?
Ratings: 0 negative/0 positive

Re: dll (C++Builder) - ошибка
AnatolyS
Автор

Сообщений: 4565
Откуда: Санкт-Петербург
Дата: 21.03.05 09:15:35ОтветитьЦитировать
функция должна иметь C компоновку:

#ifdef __cplusplus  
  extern "C"{  
  #endif  
  int dllF1(int p);  
  #ifdef __cplusplus  
  }  
  #endif
Ratings: 0 negative/0 positive

Re: dll (C++Builder) - ошибка
AlexFV

Сообщений: 268
Откуда: Воронеж
Дата: 21.03.05 10:16:08ОтветитьЦитировать
to AnatolyS
Изминил h-файл как Вы написали. Ошибка не изчезла и не изменилась. Всё тоже.
Ratings: 0 negative/0 positive

Re: dll (C++Builder) - ошибка
piva
[Болтун]

Сообщений: 18493
Откуда: Курган
Дата: 21.03.05 10:38:02ОтветитьЦитировать
Где-то должна быть секция EXPORTS




------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive

Re: dll (C++Builder) - ошибка
Петров Андрей

Сообщений: 2506
Откуда: Химки (М.О.)
Дата: 21.03.05 10:57:17ОтветитьЦитировать
А где описание параметра то?

Цитата:
DECLARE integer dllF1 in mydll.dll
a=dllF1(5)

Может так?

DECLARE integer dllF1 in mydll.dll Integer  
    a=dllF1(5)




------------------
PS Недочитал тему до конца...
Ratings: 0 negative/0 positive

Re: dll (C++Builder) - ошибка
AlexFV

Сообщений: 268
Откуда: Воронеж
Дата: 21.03.05 10:59:45ОтветитьЦитировать
Цитата:
Где-то должна быть секция EXPORTS

Дык я ж написал :
__declspec(dllexport)
- спецификатор класса памяти позволяет не только экспортировать функции и объекты определенные с ним, но и позволяет обойтись без файла определений (.def)
Я вот думаю Builder глючит...
Ratings: 0 negative/0 positive

Re: dll (C++Builder) - ошибка
AlexFV

Сообщений: 268
Откуда: Воронеж
Дата: 21.03.05 11:01:59ОтветитьЦитировать
Цитата:
А где описание параметра то?

Да можно то и без параметра...дело не в этом.
Ratings: 0 negative/0 positive

Re: dll (C++Builder) - ошибка
ra3dct

Сообщений: 468
Откуда: nr. Moscow
Дата: 21.03.05 12:02:47ОтветитьЦитировать
DECLARE integer dllF1 in mydll.dll
a=dllF1(5)

Либо я чего-то не понимаю, либо декларация неверна

DECLARE integer dllF1 in mydll.dll integer np




------------------
Не в сети. VFP6 + SP5
Ratings: 0 negative/0 positive

Re: dll (C++Builder) - ошибка
AnatolyS
Автор

Сообщений: 4565
Откуда: Санкт-Петербург
Дата: 21.03.05 12:16:29ОтветитьЦитировать
AlexFV
Изминил h-файл как Вы написали. Ошибка не изчезла и не изменилась. Всё тоже.

А почему только в h-файле? Это касается не только декларации, но и определения - не думал, что такие вещи надо объяснять.
Ratings: 0 negative/0 positive



Извините, но у вас нет прав для того, чтобы писать в этом форуме.

On-line: 45 and Guests: 45


© 2000-2018 Fox Club 
Яндекс.Метрика