excel - VBA call same C++ dll return different results -


i have test dll function reads string , display it:

int _stdcall test(lpstr mystring) { messageboxa(null, (lpcstr)mystring, "test", mb_ok); return 0;} 

the excel vba declaration is

declare function test lib "test.dll" (byval text string) long 

there sub calls function. reads excel cell value "abcde" , able display correct result. sub code is:

sub testcode()     test (cells(1,1).value) end sub 

however when call dll function using excel formula =test(a1), message box display first char "a" of string.

i had spent entire weekend reading bstr, etc, still not able solve this. going on here?

declare imported function private:

private declare function test_internal lib "test.dll" alias "test" (byval text string) long 

and create wrapper function excel use:

public function test (byval text string) long   test = test_internal(text) end functin 

because apparently, while vb(a) converts string arguments ascii using current system codepage when calling declared apis, excel engine not.

on side note, might want remove parentheses.


Comments

Popular posts from this blog

Android layout hidden on keyboard show -

google app engine - 403 Forbidden POST - Flask WTForms -

c - Why would PK11_GenerateRandom() return an error -8023? -