![]() |
SAP RFC über librfc32.dll
Moin moin.
Nach Jahren mal wieder ein Posting. Wir sitzen gerade an einem tollen Problem: Zugriff auf SAP über die librfc32.dll (neueste Version aus dem Marketplace). Unser Handle ist immer 0, Fehlermeldung gibt es auch nicht. Wir sind mit dem Latein am Ende oder einfach nur blind ;-) Gibt es bei der Deklaration einen Fehler?
Delphi-Quellcode:
Über Hilfe wären wir sehr froh,
unit main;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type Tfrm_main = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } myConStr: PCHAR; public { Public-Deklarationen } end; type PRfcErrorInfoEx = ^TRfcErrorInfoEx; TRfcErrorInfoEx = record group : integer; key : array[0..32] of char; amessage : array[0..512] of char; end; function RfcOpenEx(ConString: PCHAR; RFC_ERROR: PRfcErrorInfoEx): THandle; stdcall; external 'D:\_Entwicklung\SAPmitLIBRFC32_App\Win32\Debug\librfc32.dll'; var frm_main: Tfrm_main; implementation {$R *.dfm} procedure Tfrm_main.Button1Click(Sender: TObject); var myHandle: Long; data: PRfcErrorInfoEx; myError: TRfcErrorInfoEx; blubb: integer; begin myConStr:= 'ASHOST=1xxx SYSNR=0 CLIENT=xxx USER=xxx PASSWD=sxxx LANG=DE'; myHandle:= rfcOpenEx(pchar(myConStr), @myError); blubb:= myError.group; end; end. Die zwei Verzweifelten. Crossposting: ![]() Entwicklungssystem: Windows 7 Ultimate x64, neuester Stand Delphi XE2 Professional, neuester Stand |
AW: SAP RFC über librfc32.dll
Hast du es mal mit PAnsiChar versucht ?
Dazu ist myConStr sowieso schon ein PChar, warum machst du da nochmal einen PChar raus ? |
AW: SAP RFC über librfc32.dll
Es gibt oberhalb der LibRfc32.dll auch noch ActiveX DLLs, die die Arbeit mit SAP RFCs kräftig vereinfachen.
Code:
SAP Logon Control (wdtlog.ocx)
SAP Remote Function Call Control (wdtfuncs.ocx) SAP Table Factory (wdtaocx.ocx) |
AW: SAP RFC über librfc32.dll
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Morgen,
nach ein bisschen Herumspielen ist der Kollege zum Ergebnis gekommen (in VB.NET), dass die Deklaration des TRFCERRORINFOEX extrem wichtig ist. In Delphi sieht es nun so aus:
Delphi-Quellcode:
Jetzt ist die Fehlermeldung wunderbar lesbar, alle Zeichen, die nicht belegt sind, haben #0. Bin zufrieden.
type
PRfcErrorInfoEx = ^TRfcErrorInfoEx; TRfcErrorInfoEx = record group : Integer; key : array[0..32] of AnsiChar; amessage: array[0..512] of AnsiChar; end; Zwar ist das Handle weiterhin 0, aber das packen wir auch noch. ActiveX kommt für uns (leider) nicht in Frage. Danke für eure Hilfe!! Gruß Stefan Edit: Ein Problem scheint auch die DLL-Version darzustellen. Mit der angehängten DLL bekomm ich zumindest dies hier zurück
Code:
Rausfinden, was RFC_ERROR_PROGRAM zu bedeuten hat und weiter geht´s...ich werde ausführlich berichten ;-)
GROUP: 101
KEY: RFC_ERROR_PROGRAM MESSAGE: HANDLE: 1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 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