none
不知道怎样在MinGW创建一个VT_BSTR对象 RRS feed

  • 问题

  • 我找到的范例代码是
    VARIANT parm;
     parm.vt = VT_BSTR;
     parm.bstrVal = :Tongue TiedysAllocString(L"A1Surprise15");

    我发现在MinGW不能使用SysAllocString,所以自己写了个强制转换的赋值,如下:
     char *p = "A1Surprise15";
     VARIANT parm;
     parm.vt = VT_BSTR;
     parm.bstrVal = (BSTR)p;

    然后调用网上得到的一个范例代码来调用OLE对象

    范例代码的链接,调用的方法封装为AutoWrap

    我这样写得到的错误是0XC0000005,查了一下解释是内存访问错误。我认为是因为调用时需要将 parm.bstrVal作为参数传递给EXCEL,但是按照我的写法会造成p的内容是在自己写的EXE内存空间内部,这样EXCEL试图读取时就出错了。

    现在希望能够有达人指点一下在非VC情况下应该怎样创建VT_BSTR对象,以便类似EXCEL这样的程序可以读取到参数?
    2008年12月18日 12:41

答案

全部回复