Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > вызов метода из dll


Автор: golfV 19.5.2010, 15:07
Доброго времени суток!

появилась такая проблемка. Есть Dll написаная на делфи мне надо использовать фукцию из этой библиотеки
делаю так
Код


typedef int (__stdcall *MYPROC)(int, char, int, int, int, int, int, char, int, char, char, char,
 char, double, double, double, char,int, char, char, char, int );

HINSTANCE hinstLib; 
MYPROC ProcAdd;

hinstLib = LoadLibrary (L"DLL.dll");
ProcAdd = (MYPROC) GetProcAddress (hinstLib, "Result");
if (NULL != ProcAdd) 
    {            
          (*ProcAdd)(iTagX, "1111111111", PrTID, PrdID, StpNr,TstID, UutID, "Name", 0, "Name", "", "User",
    "2010/05/20 12:51:10", 0, 15.2, 0, "Finish", 0, "", "", "", 0);

но ничего неполучается все время ругается на типы
Код


Error 7 error C2664: 'in(int,char,int,int,int,int,int,char,int,char,char,char,char,double,double,double,char,int,char,char,char,int)' : cannot convert parameter 9 from 'const char [20]' to 'int'
    

 и таких ошибок почти на каждый параметр. 
прототип функции на делфи выглядит так. Подскажите как вызвать ее в С. Заранее большое спасибо
Код

  procedure Result(var Tag: integer;SN: PChar;
                var Pr,ID,Nr,tID,Uut:integer;Test: PChar;
                VerID: integer;
                nID, reID,iUserID,StartDate: PChar;
                Time,ExecTime,PostTime :double;
                Status:PChar;
                ErrCode:integer;
                ErrMsg,Path,BathSN:PChar;
                SocketID:integer);stdcall;external 'DLL.dll';

Автор: 586 19.5.2010, 15:36
Код
typedef void (__stdcall *MYPROC)(int&, char*, int&, int&, int&, int&, int&, char*, int, char*, char*, char*,
 char*, double, double, double, char*,int, char*, char*, char*, int );

Автор: golfV 19.5.2010, 16:07
большое пасибо, теперь работает

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)