描述:
在idl文件里面是如下定义:
[id(3), helpstring("method test4")] HRESULT test4([out] VARIANT* pStr);
在cpp文件里面如下定义:
STDMETHODIMP Cobjctrl::test4(VARIANT *pStr)
{
// TODO: Add your implementation code here
pStr->vt=VT_BSTR;
pStr->bstrVal=SysAllocString(L"在那遥远的地方");
return S_OK;
}
在jsp文件如下调用:
var abc = new ActiveXObject("Test2.objctrl.1");
var fdsfsd = "123";
iPort = abc .test4(fdsfsd);
alert(fdsfsd);
却发现fdsfsd变量仍然是123?但在组件的test4里面是可以获取到fdsfsd 变量的值的。
已经尝试过BSTR,也不行。小弟是菜鸟,望各位大侠指导。
解决方案1:
com实现代码
STDMETHODIMP CTest::TestBStr(BSTR *pStr)
{
CComBSTR temp = *pStr;
if(temp == "OK")
{
*pStr = CComBSTR("FALSE");
}else
{
*pStr = CComBSTR("Fool");
}
// TODO: Add your implementation code here
return S_OK;
}