高手帮我
为什么在同一个工程里我可以用A2BSTR W2BSTR等转换函数,却不能用A2W W2A A2OLE等转换函数,有什么不一样吗?我该怎么用?
另外我用CEnumerator ATL模板类枚举局域网内的SQLServer服务器,为什么在遍历返回的记录集时,MoveNext()函数总是返回真即FAILED(Enum->MoveNext())无论调用多少次总是返回假.

解决方案 »

  1.   

    后面三个是函数吗?
    打开<atlconv.h>看看吧。
      

  2.   

    确切的说都不是函数,是宏,对吗?Note   When using an ATL string conversion macro, specify the USES_CONVERSION macro at the beginning of your function in order to 
    ~~~~~~~~~~~~~~~
    avoid compiler errors. For exampleCopy from MSDN,呵呵,看了半天还是不够仔细还有一个问题呢arxing(阿行)帮帮我,分数一并送上!!!
      

  3.   

    但是,前面两个是函数,要仔细看清楚。第二个问题,FAILED(X) 定义为 (X < 0),小于零为是为真,你的问题返回假,表示它返回的是个非负整数(包括S_OK = 0, S_FALSE = 1,DB_S_ENDOFROWSET),带个'S'的都是非负数,二负数都带个'E',例如E_FALE, E_NOINTERFACE, E_NOTVALIDARG等等。在MSDN上查看一下CRowset::MoveNextSee 
    Return Value
    A standard HRESULT. When the end of the rowset has been reached, returns DB_S_ENDOFROWSET.