Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#6
  Alt 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
  Mit Zitat antworten Zitat