![]() |
array an externe Funktion übergeben
Hallo Allerseits,
ich habe in mein Delphi-Programm eine c-dll eingebunden und möchte nun an eine Funktion aus dieser dll ein array übergeben. Wenn ich das gesamt array übergeben, stürzt mein Rechner ab. Ich brauche für die Lösung auch das gesamte Array. Von dem ganzen Problem habe ich ein Beispiel in VB und dort wird einfach der erste Wert übergeben. Das funktioniert leider nicht. Für einen guten Tipp, wäre ich sehr dankbar. Gruß Kaddy |
Hallo und hezlich Willkommen im Forum!
Passiert das ganze auch wenn Du das Programm aus der Delphi-IDE startest? Und wenn Ja, welche Meldung kommt. Vielleicht solltest Du etwas Code posten, vielleicht findet man den Fehler schneller. Man wiess ja nie was Du da machst. ;) Grüsse, Daniel :hi: |
moin,
habe noch mal meine Fehlermeldung dazugepackt. Projekt.exe raised exception class EAccess Violation with message 'Access violation at address 10174331 in module '***.dll'. Read at address 'FFFFFFF'. Process stopped. Use Step or Run to Continue. Gruß kaddy |
Gib uns doch mal bitte die genaue Deklaration der Routine, welche Du in der DLL aufrufst. Wie ist das Array definiert, etc.
...:cat:... |
meine Typendefinition von den Arrays:
Delphi-Quellcode:
Meine Variablen:
type
Trowi= array[0..1] of longint; Trowd= array[0..1] of double; Trowb= array[0..1] of byte; Tcoli= array[0..2] of longint; Tcold= array[0..2] of double; Tnumi= array[0..5] of longint; Tnumd= array[0..5] of double;
Delphi-Quellcode:
Dann kommt Programm und beim Aufruf von dieser Funktion stürzt der Rechner ab.
var
numcols, numrows, objsen, curnumrows, curnumcols: longint; junk, errmsg, probname: string; obj: Tcold; rhs: Trowd; sense: Trowb; matbeg: Tcoli; matcnt: Tcoli; matind: Tnumi; matval: Tnumd; lb: Tcold; ub: Tcold;
Delphi-Quellcode:
Die Funktion habe ich folgendermaßen in einer externen Unit deklariert.
status:=CPXcopylp(env,lp,numcols,numrows,objsen,obj,rhs,
sense,matbeg,matcnt,matind,matval,lb, ub,0);
Delphi-Quellcode:
[edit=Daniel B]Delphi-Tags ergänzt. MfG Daniel B.[/edit]
Function CPXcopylp (env: longint; lp: longint; numcols: Longint;
numrows: Longint; objsen: Longint; obj: array of double; rhs: array of double; sense: array of byte; matbeg: array of longint; matcnt: array of longint; matind: array of longint; matval: array of double; lb: array of double; ub: array of double; rngval: double): Longint; stdcall; external 'C:/MPLwin4/cplex65.dll'; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz