-
June 22nd, 2001, 02:06 AM
#1
How can return a String from C++ DLL to VB?
I am returning a HASH DEFINE string from a DLL developed using C++ to VB as BSTR. But in some cases VB cannot get the string at all.What all should I do for this to get the same correctly. Can you suggest me with a better idea.
My C++ code is as given below:
BSTR __stdcall ReturnFn( )
{
return (BSTR)_T("RETURN VALUE");
}
Thanks in advance
-
June 22nd, 2001, 10:36 AM
#2
Re: How can return a String from C++ DLL to VB?
Try returning a char instead. BSTR is a 32bit pointer so you need to get return ByRef and not ByVal
Jean-Guy
-
June 23rd, 2001, 05:44 AM
#3
Re: How can return a String from C++ DLL to VB?
Hi,
your code cannot work, because you just cast a string to a BSTR. But a BSTR has a 4 Byte header in front of its actual text, holding the length of the text.
Try
BSTR __stdcall ReturnFn( )
{
return SysAllocString(OLESTR("RETURN VALUE"));
}
OLESTR("text") is the same as L"text", but you should use OLESTR("text").
The memory of the string is freed by the VB-client.
Hope this helps
Peter
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|