003
19.07.2003, 14:13 Uhr
Uwe
C/C++ Master (Administrator)
|
Hallo, kleine Zugabe:
C++: |
#include <windows.h>
BOOL __stdcall DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved){ return TRUE; } extern "C" __declspec(dllexport) long __stdcall WINAPI StringArray(LPSAFEARRAY *ppsa) { long i; BSTR bstr; LPSAFEARRAY psa; SAFEARRAYBOUND sa;
sa.lLbound = 0; sa.cElements = 10;
if (*ppsa == NULL){ if ((psa = SafeArrayCreate(VT_BSTR, 1, &sa)) == NULL) return ERROR; *ppsa = psa; } else{ if ((*ppsa)->cDims != 1) return ERROR; }
for (i = sa.lLbound+1; i < sa.cElements; i++){ if (FAILED(SafeArrayGetElement(*ppsa, &i, &bstr))) return ERROR; if (FAILED(SafeArrayPutElement(*ppsa, &i, bstr))) return ERROR; MessageBox(NULL,(char*)bstr,"",MB_OK); }
return 0; }
|
VB
C++: |
Option Explicit Private Declare Function StringArray Lib "test.dll" Alias "_StringArray@4" _ (s() As String) As Integer Private Sub Command1_Click() ReDim str(10) As String Dim i As Integer str(1) = "String 1" str(2) = "String2" REM ......... i = StringArray(str) End Sub
|
-- "Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."
Bis dann... Uwe Dieser Post wurde am 19.07.2003 um 14:33 Uhr von Uwe editiert. |