Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Как сделать вызов аналогичный данному в FoxPro "WinAPI"  [new]
НовичокAPI
Guest
Есть кусок из Delphi помогите перевести в Fox
Type FT_Result = Integer;
var
	FT_Device_Count : DWord;
Const 
    FT_LIST_NUMBER_ONLY = $80000000;
    FT_DLL_Name = 'FTD2XX.DLL';
	FT_OK =0;
implementation	
function FT_GetNumDevices(pvArg1:Pointer; pvArg2:Pointer; dwFlags:Dword):FT_Result; stdcall; External FT_DLL_Name name 'FT_ListDevices';

Собственно вызов
...
Result := FT_GetNumDevices(@FT_Device_Count,Nil,FT_LIST_NUMBER_ONLY);
...
12 ноя 08, 10:00    [6426953]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать вызов аналогичный данному в FoxPro "WinAPI"  [new]
Kruchinin Pahan
Member

Откуда: Екатеринбург
Сообщений: 925
НовичокAPI
Есть кусок из Delphi помогите перевести в Fox
Type FT_Result = Integer;
var
	FT_Device_Count : DWord;
Const 
    FT_LIST_NUMBER_ONLY = $80000000;
    FT_DLL_Name = 'FTD2XX.DLL';
	FT_OK =0;
implementation	
function FT_GetNumDevices(pvArg1:Pointer; pvArg2:Pointer; dwFlags:Dword):FT_Result; stdcall; External FT_DLL_Name name 'FT_ListDevices';

Собственно вызов
...
Result := FT_GetNumDevices(@FT_Device_Count,Nil,FT_LIST_NUMBER_ONLY);
...


FT_LIST_NUMBER_ONLY = $80000000;
преобразуется в
#DEFINE FT_LIST_NUMBER_ONLY 0x80000000

function FT_GetNumDevices(pvArg1:Pointer; pvArg2:Pointer; dwFlags:Dword):FT_Result; stdcall;
преобразуется предоположим:
DECLARE LONG FT_ListDevices IN FTD2XX.DLL AS FT_GetNumDevices LONG@ pvArg1, LONG@ pvArg2, INTEGER dwFlags
Хотя, с LONG надо будет еще поиграться.
12 ноя 08, 12:37    [6428201]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать вызов аналогичный данному в FoxPro "WinAPI"  [new]
НовичокAPI
Guest
Вот такой код
DevNum=0
ParNull=NULL
#DEFINE FT_LIST_NUMBER_ONLY 0x80000000
DECLARE long FT_ListDevices IN FTD2XX.DLL long @Par1,long @Par2,integer Par3
?FT_ListDevices(@DevNum,null,FT_LIST_NUMBER_ONLY)
?FT_ListDevices(@DevNum,@ParNull,FT_LIST_NUMBER_ONLY)

дает ошибку см.jpg
Data type mismatch

К сообщению приложен файл. Размер - 0Kb
12 ноя 08, 13:04    [6428480]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать вызов аналогичный данному в FoxPro "WinAPI"  [new]
НовичокAPI
Guest
А это кусок из документации по использованию устройства в чем моя ошибка не пойму.
Устройство в системе есть дрова встали.
The examples that follow use these variables.
FT_STATUS ftStatus;
DWORD numDevs;
1. Get the number of devices currently connected
ftStatus = FT_ListDevices(&numDevs,NULL,FT_LIST_NUMBER_ONLY);
if (ftStatus == FT_OK)
{ // FT_ListDevices OK, number of devices connected is in numDevs } else { // FT_ListDevices failed }
12 ноя 08, 13:11    [6428529]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить