000
06.01.2008, 13:48 Uhr
WindDancer1
|
Hi,
ich habe folgendes Problem, ich möchte aus VB eine C++ Dll aufrufen an die ich einen String übergebe, die Dll gibt mir dann einen anderen String zurück ! Einzeln funktioniert das auch, das heißt wenn die Dll aufgerufen wird und nur zurückgibt bzw. im anderen Szenario wenn VB übergibt und die Dll nichts zurückgibt. Versuche ich aus VB eine Funktion der Dll aufzurufen und dieser einen String zu übergeben und die Dll Funktion einen Wert zurückgeben zu lassen funktioniert das nicht !
Hier der Code: VB:
Visual Basic: |
Private Declare Function fnWin32DLL02 Lib "E:\WORKING\OMRON\GDT\EigeneDLL\C++ DLL mit VB (Test01)\Win32DLL02.dll" (ByVal testParam As String) As String
Private Sub Form_Load()
Dim x As String Dim test As String
test = "Übergabe aus VB" x = Space$(5) x = fnWin32DLL02(test) MsgBox "X ist: " & x
End Sub
|
Dll.cpp:
C++: |
WIN32DLL02_API BSTR fnWin32DLL02(BSTR s) { BSTR x;
x = SysAllocString((BSTR)"abcde"); MessageBox(NULL,(LPCSTR)s,"Info",MB_OK); SysFreeString(s);
return x; }
|
Dll.h:
C++: |
WIN32DLL02_API BSTR fnWin32DLL02(BSTR);
|
Das ist wie verhext, ich probier das schon seit Tagen und Google schweigt sich zu diesem Thema beharrlich aus !
Bin für jede Hilfe dankbar ! WindDancer |