有示例就好了,另外,BSTR如何转换为char *

解决方案 »

  1.   

    你传个void*,那边类型转换过来就可以了.#if defined(WIN32) && !defined(OLE2ANSI)
    typedef WCHAR OLECHAR;
    #else
    typedef char OLECHAR;
    #endif
    typedef OLECHAR* BSTR;WideCharToMultiByte()
      

  2.   

    是用string作为参数接收VB中传递过来的参数吗?能否举个例子,thank you!!!
      

  3.   

    to everandforever(Forever),我是说用VB生成一个字符串传给VC
      

  4.   

    用VARIANT类型。
    当然在vc端其实可以用void*来接收,然后再转换回来。
      

  5.   

    我用LPSTR试过了,发现是乱码,而且只有一个字符
      

  6.   

    举例:
    比如对API函数GetSystemDirectory(LPTSTR lpBuffer,UINT uSize),
    在VB下的调用方法:dim path as string * 255
    GetSystemDirectory(path, 255);
    msgbox path即只要声明一个固定长度的字符串即可。BSTR转char*可以用ATL的字符串转换宏如OLE2A
      

  7.   

    如楼上所讲。补充一点,最好先把字符串初始化为vbnullchar
    path = string(255,vbnullchar)