AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi String an VB Dll übergeben geht nicht

String an VB Dll übergeben geht nicht

Ein Thema von Primus · begonnen am 18. Mär 2010 · letzter Beitrag vom 18. Mär 2010
Antwort Antwort
Primus

Registriert seit: 16. Sep 2002
Ort: Werneuchen
32 Beiträge
 
#1

String an VB Dll übergeben geht nicht

  Alt 18. Mär 2010, 13:21
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:
 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;
Von dem SQLStrig kommt bei der Dll nur ein 'K' an. Und das verstehe ich garnicht...

Hat jemand ne Idee oder hab ich jetzt nur nen Brett vor dem Kopf und sehe das warscheinlichste nicht?

Danke schon mal,

Primus
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: String an VB Dll übergeben geht nicht

  Alt 18. Mär 2010, 13:28
Hallo,

(ByVal Suchstr$, ByRef DocIdString$)

Also einmal ByVal, einmal ByRef
bei dir stehen zweimal PChar

Schau mal hier
1



Heiko
Heiko
  Mit Zitat antworten Zitat
Primus

Registriert seit: 16. Sep 2002
Ort: Werneuchen
32 Beiträge
 
#3

Re: String an VB Dll übergeben geht nicht

  Alt 18. Mär 2010, 13:48
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: String an VB Dll übergeben geht nicht

  Alt 18. Mär 2010, 13:51
Du hast ja auch keinen Speicher für die Variable result reserviert.

[edit] Achnee, die andere war ja schon das Problem [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Primus

Registriert seit: 16. Sep 2002
Ort: Werneuchen
32 Beiträge
 
#5

Re: String an VB Dll übergeben geht nicht

  Alt 18. Mär 2010, 14:17
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: String an VB Dll übergeben geht nicht

  Alt 18. Mär 2010, 14:38
[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]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Primus

Registriert seit: 16. Sep 2002
Ort: Werneuchen
32 Beiträge
 
#7

Re: String an VB Dll übergeben geht nicht

  Alt 18. Mär 2010, 15:04
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: String an VB Dll übergeben geht nicht

  Alt 18. Mär 2010, 15:05
Naja, ich hätte ja auch früher einen Blick auf Deine Signatur werfen können
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz