mkluwe@gmail.com schrieb:
> I just took the first few steps in writing a little DLL that should
> be called from Excel/VBA, and I stumbled upon some wierd behaviour.
>
> The function in my DLL is declared as
>
> int __stdcall foo( const char *t );
>
> and is used in VBA via
>
> Declare Function foo Lib "C:\foo\foo.dll" (ByVal t As String) As Long
>
> I noticed that foo didn't work internally as I expected and added
> writing *t to a file on each call of foo as a debugging measure.
> According to this output, only the first character of String t seems
> to be passed to foo when called directly from Excel (putting
> =foo("xyz") in a cell).


Let me answer my own post:

Excel passes the string as some kind of wide-character. Using
const wchar_t *t in my function works perfectly.

Regards,
Matthias