![]() |
String an VB Dll übergeben geht nicht
Hallo Zusammen,
ich stehe hier gerade vor dem Problem an unsere Serviceapplication ein externes Dokumentenmanagement anzubinden. Eigentlich kein Problem, da es eine gut Dokumentierte Schnittstelle per VB-Dll gibt, leider hab ich das Problem das ich keinen String an die Dll übergeben kann. Zuersteinmal hier die VB Deklaration: Declare Function FindDoc Lib "MACRODLL.DLL" (ByVal Suchstr$, ByRef DocIdString$) As Long Hier nun die Delphi Variante
Delphi-Quellcode:
Von dem SQLStrig kommt bei der Dll nur ein 'K' an. Und das verstehe ich garnicht...
function FindDoc(pSQLCommand,ppDocumentID:pchar):longint; stdcall; external 'Macrodll.dll';
procedure TfrmKaufvertragsinformation.Button1Click(Sender: TObject); var SQLString : PChar; result,FileId,FilePath,FileTypeName,FileName,p :pchar; Handle:integer; begin LoginAuthDip('ABCD',False); SQLString := 'KDNR = ''B79568'''; if FindDoc(SQLString,result) >0 then begin Handle := OpenDoc(result); if Handle > 0 then begin FindFirstFileID(Handle,FileId); GetProxessFile(Handle,FileId,FilePath,FileTypeName,FileName); Showmessage(FilePath+' '+FileName); CloseDocUnsaved(Handle); end; end; Hat jemand ne Idee oder hab ich jetzt nur nen Brett vor dem Kopf und sehe das warscheinlichste nicht? Danke schon mal, Primus |
Re: String an VB Dll übergeben geht nicht
Hallo,
(ByVal Suchstr$, ByRef DocIdString$) Also einmal ByVal, einmal ByRef bei dir stehen zweimal PChar Schau mal hier ![]() Heiko |
Re: String an VB Dll übergeben geht nicht
Hallo,
also das mit dem ByVal und ByRef hab ich gesehen. Aber es müssen doch beises laut Doku strings sein. Das Problem was ich hab ist das der erste wert als SQL String nur als einzelner Buchstabe in der Dll ankommt. Gruß Primus |
Re: String an VB Dll übergeben geht nicht
Du hast ja auch keinen Speicher für die Variable result reserviert.
[edit] Achnee, die andere war ja schon das Problem [/edit] |
Re: String an VB Dll übergeben geht nicht
So habe jetzt mal mit GetMem den Speicher für Result reserviert.
Leider beomme ich noch immer keine Werte rüber. Es kommt nach wie vor nur ein K auf seiten der Dll an. Irgendwie ist mir das gerade ne nummer zu hoch. |
Re: String an VB Dll übergeben geht nicht
[edit] Ich hatte Blödsinn gepostet! Du hast ja Delphi 2009, d.h. Unicode. Nimm statt String einmal AnsiString, statt PChar PAnsiChar und statt Char AnsiChar. [/edit]
|
Re: String an VB Dll übergeben geht nicht
Oh mann das ist ja Peinlich da hätte ich auch selbst drauf kommen können.
Per pAnsiChar läuft alles wunderbar! Sag ja sehe den Wald vor lauter Bäumen nicht.. Vielen Dank |
Re: String an VB Dll übergeben geht nicht
Naja, ich hätte ja auch früher einen Blick auf Deine Signatur werfen können :zwinker:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 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