实在是不好意思,一个看起来简单的问题把我搞倒了就是我需要在ATL中创建一个ActiveX,其中有一个事件要返回两个参数
例:EventName(long Id,BSTR* FName)但是在VB中使用时,会发生 Automation Error。但是同样的在一般方法中使用这个方式MethodName(long ID,BSTR* FName)就不会有问题,然后我又试着使用BSTR,也是不行的而我在ATL直接写组件,不想使用MFC,望各位高手多多指点
例:EventName(long Id,BSTR* FName)但是在VB中使用时,会发生 Automation Error。但是同样的在一般方法中使用这个方式MethodName(long ID,BSTR* FName)就不会有问题,然后我又试着使用BSTR,也是不行的而我在ATL直接写组件,不想使用MFC,望各位高手多多指点
解决方案 »
- 关于Activex退出问题
- 求助关于VC++字符集
- 如何编程禁止使用计算机 U盘口?
- 使用vc2005静态链接openssl的libeay32.lib和ssleay32.lib两个库,为什么还要将其.dll的库也放到程序的当前目录下,如果没有.dll文件,程序报错"no OPENSSL_Applink"??
- 请教高人:为什么FrameRgn,FillRgn这两个函数画出来的框的颜色不是我本来设置的颜色那(急)
- 连接局域网上的共享文件夹,应该用什么函数啊
- 新学vc,想做一个数据库软件,刚开始就卡壳了,各位能给看看吗?
- 内存泄露问题
- 请问要更新什么样的sdk才能让你的vc识别位图信息头的BI_JPEG宏
- SOS!!如何在WEB页中传递参数给ACTIVEFORM??
- 谁给我解释一下这个宏,谢谢!
- 求救:有关CTreeCtrl资料大征集
//*******VC:#include <comdef.h>
STDMETHODIMP Ctest::hello(long i, BSTR ss, long r)
{
// TODO: Add your implementation code here
_bstr_t s(ss,false);
MessageBox(0,s,"",0);
return S_OK;
}//********VB调用:
Private Sub Form_Load()
Dim ss As New ATLTESTLib.test
Call ss.hello(1, "asdasd", 0)
End Sub
EventName(/*[in]*/long Id,/*[in]*/BSTR FName)
{
CString str("ok");
*FName = str.AllocSysString();
}
你怎么解决的?