PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DLL von D6 nach D 2010


chjr201170
05.12.2009, 16:22
Hallo....


Habe eine Problem mit den neuen Strings in D 2009
Ich habe schon alles mögliche probiert und hoffe hier auf Hilfe.

Ich benutze die Leadtools DLL’s (ziemlich alte Version)

Darin gibt es eine Funktion zum Laden von einem Imgae-File

Function L_LoadBitmap(lpszFileName : Pchar ;
lpBitmap : pBitmapHandle;
nBitsPerPixel : integer;
nColorOrder : integer): integer;

Ich rufe das wie folgt auf:

procedure LoadFile(b: pBitmapHandle; filename: string);


L_LoadBitmap(PChar(filename),b,8,ORDER_BGR);

….

Hat bis D6 auf geklappt. Nun will ich das mit D2009 benutzen


Es wird compiliert,
es gibt keine Fehlermeldung oder Exception.
ABER es passiert auch gar nix.


D.h. das Bild wird nicht geladen. Ich denke mal, das ich Pchar umstellen muss. ABER wie und in was ?

Kann mir jemand mit einem Beispiel helfen.

Vielen Dank

Bernhard Geyer
05.12.2009, 17:05
PChar ist in D2009 ein PWideChar und nicht mehr ein PAnsiChar!

procedure LoadFile(b: pBitmapHandle; filename: string);
var
AnsiFileName: AnsiString;



AnsiFileName := FileName;
L_LoadBitmap(PAnsiChar(AnsiFileName),b,8,ORDER_BGR );

chjr201170
05.12.2009, 18:08
Vielen Dank für die schnelle Antwort,

leider komme ich immer noch nicht klar...

ich habe jetzt:



procedure LoadFile(b: pBitmapHandle; filename: string);
var AnsiFileName: AnsiString;
begin
try
AnsiFileName := FileName;
if fileexists(filename) then begin
L_LoadBitmap(PAnsiChar(AnsiFileName),b,8,ORDER_BGR );



ich bekommen auf Zeile: L_LoadBitmap(.....

die Fehlermeldung:

[DCC Fehler] BCwork.pas(85): E2010 Inkompatible Typen: 'AnsiChar' und 'Char'

was mache ich nur falsch

chjr201170
05.12.2009, 18:11
ich den Aufruf der procedure geändert, hilft aber nichts:

Function L_LoadBitmap(lpszFileName : PAnsIChar;
lpBitmap : pBitmapHandle;
nBitsPerPixel : integer;
nColorOrder : integer): integer;

chjr201170
05.12.2009, 20:51
war mein Fehler hat alles geklappt.
Super vielen Dank