VC 导出的 DLL 如何给 VB 返回不定长度的字符串?
gxqcn 2006-05-19 11:13:35 在 DLL 中:
LPTSR m_lpszBuf = NULL;
{
// ...
// 对 m_lpszBuf 进行操作
// ...
}
extern "C" const LPCTSTR __declspec(dllexport) WINAPI getStr( ..., SIZE_T * const pStrLen = NULL )
{
// ...
// 对 m_lpszBuf 进行操作
// ...
if ( NULL != pStrLen )
{
*pStrLen = strlen( m_lpszBuf );
}
return m_lpszBuf;
}
其中,m_lpszBuf 是一个以"\0"结尾的字串,其长度不定(由其它函数决定),
getStr() 函数的目的是为了获取该字串的首地址(也可得到该字串的长度)
我用VC写该DLL的目的,是希望在其它语言如VB也可自由调用它。
请问在VB中,如何申明该函数?如何让VB读出该字串?
如果当前接口无法完成,应该怎样修改 DLL 的导出接口?
我的问题是:若 DLL return 回一个字串首地址,如果用VC去调用非常容易,但如果是VB调用,能否成功?