Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 VPF9, не получается использовать DLL  [new]
10101002
Guest
Здавствуйте, подскажите пожалуйста.

У меня есть описание некой DLL-ки.

В этой DLL-ки есть три функции:

1. Инициализация
2. Действие
3. Закрытие

В описании первая функция выглядит так:
HRESULT xxxInitLib (  HWND hParent, LPCTSTR lpszBaseDir  )

Description:
Функция для инициализации библиотеки.

Parameters:
hParent	[in]	Дескриптор окна вызывающей программы. В данный момент не используется (можно установить равным 0)
lpszBaseDir [in]    Полный путь к базовой директории.

Return Value:
0 – в случае успеха; отрицательное значение – в случае неудачи).

Remarks:
•	Функция вызывается перед вызовом каких-либо других функций из библиотеки.

Я пытался в ФоксПро так:
DECLARE INTEGER xxxInitLib IN "C:\XXXX\YYY\ZZZ.DLL" AS INTEGER iHWND STRING lpBaseDir
xxx=xxxInitLib(0,'C:XXXX\YYY\') && второй параметер, это точно базовая директория

Пишет File 'xxxInitLib.prg' does not exist
22 июн 08, 17:15    [5831592]     Ответить | Цитировать Сообщить модератору
 Re: VPF9, не получается использовать DLL  [new]
fox_vik
Member

Откуда:
Сообщений: 109
Из хэлпа:
Help
DECLARE [cFunctionType] FunctionName IN LibraryName [AS AliasName]
[cParamType1 [@] ParamName1, cParamType2 [@] ParamName2, ...]


У Вас:
DECLARE INTEGER xxxInitLib IN "C:\XXXX\YYY\ZZZ.DLL" AS INTEGER iHWND STRING lpBaseDir

Уберите AS.
Поставьте запятую после iHWND.

У Вас имя dll заменяется на псевдоним INTEGER. После этого FoxPro уже не видит имя xxxInitLib.
22 июн 08, 19:56    [5831786]     Ответить | Цитировать Сообщить модератору
 Re: VPF9, не получается использовать DLL  [new]
fox_vik
Member

Откуда:
Сообщений: 109
fox_vik
У Вас имя функции заменяется на псевдоним INTEGER. После этого FoxPro уже не видит имя xxxInitLib.

:)
22 июн 08, 19:58    [5831792]     Ответить | Цитировать Сообщить модератору
 Re: VPF9, не получается использовать DLL  [new]
10101002
Guest
fox_vik

...
Уберите AS.
Поставьте запятую после iHWND.
У Вас имя dll заменяется на псевдоним INTEGER. После этого FoxPro уже не видит имя xxxInitLib.


Спасибо большое, работает, не углядел подсказку.
22 июн 08, 20:08    [5831806]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить