Ich habe bereits verschiedene RFCs erfolgreich im Einsatz.
In Delphi beim Import der Typenbibliotheken gebe ich an ob ich die
unicode-Varianten haben möchte.
Nun habe ich zum Test die nicht
Unicode-Varianten importiert. Jetzt kommt die EOLEExeption "SAP Remote Function Call". Bereits schon funktionierende RFCs machen weiterhin keine Probleme. Irgendwas ist an dem neuen Teil faul. Selbstverständlich wurde bereits vor meinem ersten Posting SAP-Seitig alles untersucht, um Unterschiede zwischen dem neuen
RFC und den bereits funktionierenden RFCs zu erkennen. In SAP selbst funktionert der neue
RFC natürlich.
In der procedure DispCall aus der
unit comobj kommt der nicht funktionierende
RFC in den Block @@20 und ruft dort die Zeile JMP DispCallError auf. DispCallError wirft dann den Error. Bei den funktionierenden RFCs wird nicht in den Block @@20, sondern in den Block @@30 gesprungen. Assembler ist nicht meine Baustelle, hat Jemand noch eine Idee?
Delphi-Quellcode:
Auszug aus der
procedure DispCall aus der
unit comobj
@@20: MOV DispParams.rgdispidNamedArgs,ESP
PUSH EDX
{ ArgErr }
LEA EAX,ExcepInfo
PUSH EAX
{ ExcepInfo }
PUSH ECX
PUSH EDX
CALL ClearExcepInfo
POP EDX
POP ECX
PUSH Result
{ VarResult }
LEA EAX,DispParams
PUSH EAX
{ Params }
PUSH ECX
{ Flags }
PUSH EDX
{ LocaleID }
PUSH OFFSET GUID_NULL
{ IID }
PUSH
DispID { DispID }
MOV EAX,Dispatch
PUSH EAX
MOV EAX,[EAX]
CALL [EAX].Pointer[24]
TEST EAX,EAX
JE @@30
LEA EDX,ExcepInfo
MOV CL, 1
PUSH ECX
MOV ECX,[EBP+4]
JMP DispCallError
@@30: MOV ESP,EDI
POP EDI
POP ESI
POP EBX