Übertragung von Strings zwischen COM-DLL und Fox Pro 6.0

01/01/2008 - 23:42 von Udo Goelz | Report spam
Hallo zusammen,
weiß jemand wie man Strings korrekt zwischen Fox Pro und und einer eigenen
(c++)COM Dll übertràgt?
Mittlerweile habe ich diverse Methoden Signaturen in dem IDL File probiert,
aber wenn ich z.B. den Parameter string([...,string]) in dem IDl File
benutze, dann schreibt derMIDL Compiler eine Warning, daß die Methode nicht
Ole konform ist. Wenn ich stattdessen folgende Signatur in dem IDL File
benutze:
[id(5), helpstring("Methode stringCopy3")] HRESULT stringCopy3([ in] long
Size, [in,out] unsigned char* a);
(parameter Size wird noch nicht ausgewertet, es werden aber von der DLL max
16+1 Zeichen in die Adresse a geschrieben)
Dann baut zwar die DLL ohne MIDL Warnings, ich bekomme aber bei folgendem
Text in FoxPro:
a
res="abcdefghijklmnop"
x = CREATEOBJECT('ComDllServer.EinfachesObj')
x.StringCopy3(a,@res)
test1.OutString.value=res

In der Zeile:
x.StringCopy3(a,@res)

folgenden Fehler:
OLE-Fehlercode 0x80020005: Typkonflikt
Weder in der MSDN, noch in der Knowledge Base habe ich eine Erklàrung
gefunden. Da geht es nur um Probleme mit Word.
Übrigens wenn ich eine Zahl per Referenz an die DLL übergebe, und dann in
der DLL an diese Adresse einen neuen Wert Schreibe, dann funkt das prima und
der richtige Wert steht in FoxPro zur Verfügung.
Gruß und Danke im Voraus
UG
 

Lesen sie die antworten

#1 Olaf Doschke
02/01/2008 - 06:53 | Warnen spam
Hallo Udo,

warum überhaupt eine OLE DLL?

Wenn Du eine Stringbehandlung in C++
schreiben willst, dann schreibe doch eine
FLL.

Tschüß, Olaf.

Ähnliche fragen