Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
Delphi 2007 Professional
|
16. Apr 2003, 13:31
Also,
probiere mal anstatt Stdcall cdecl.
Der Aufwand mit den Pointern tut nicht not. definiere einfach folgendes:
Delphi-Quellcode:
function CPXaddrows(env:CPXEnvptr; LP: CPXLPptr;ccnt,rcnt,nzcnt:integer;
rhs,sense,rmatbeg,rmatind,rmatval,colname,rowname:
pointer):integer;cdecl; external cplex name 'CPXaddrows';
und für die Variablen sowie den Aufruf:
Delphi-Quellcode:
var rowname, colname : PChar;
begin
GetMem(rowname, 4);
GetMem(colname, 4);
FillChar(rowname, sizeof(rowname), #0);
FillChar(colname, sizeof(rowname), #0);
Rowname := 'xyz';
Colname := 'abc';
status:=CPXaddrows(env,lp,3,2,6,rhs,sense,rmatbeg,rmatind,rmatval,@colname[0],rowname[0]);
es geht auch folgendes:
Delphi-Quellcode:
var rowname, colname : Array[0..3] of Char;
begin
FillChar(rowname, sizeof(rowname), #0);
FillChar(colname, sizeof(rowname), #0);
Rowname := 'xyz';
Colname := 'abc';
status:=CPXaddrows(env,lp,3,2,6,rhs,sense,rmatbeg,rmatind,rmatval,@colname[0],rowname[0]);
Probier das mal.
Gruß oki
|