До сих пор я выяснил, как передавать строки Unicode, bSTR, в и из библиотеки Euphoria с помощью Typelib. Пока что я не могу понять, как создать и передать обратно массив BSTR.
Код, который у меня есть (вместе с include
s для самого EuCOM и частей Win32lib):
global function REALARR()
sequence seq
atom psa
atom var
seq = { "cat","cow","wolverine" }
psa = create_safearray( seq, VT_BSTR )
make_variant( var, VT_ARRAY + VT_BSTR, psa )
return var
end function
Часть библиотеки типов:
[
helpstring("get an array of strings"),
entry("REALARR")
]
void __stdcall REALARR( [out,retval] VARIANT* res );
И тестовый код, в VB6 это:
...
Dim v() as String
V = REALARR()
...
Пока все, что мне удалось получить, это ошибка '0' из DLL. Есть идеи? Кто-нибудь? * * 1013