bstr引起的问题

BSTR虽然解决了不同语言之间的兼容问题,但也带来了不少内部问题

 

一、格式化字符串 产生的问题

今天需要传递一个指针到新的dll中去,然而去没有整形参数的接口,于是打算转换成字符再传递过去

在转换为bstr传递到新组件之后,使用wscanf格式化回来时,不管如何使用参数,得到的结果都是16,怀疑为bstr的长度前缀引起wscanf函数格式出现的问题。

换为_wtol,得到的结果正常

Fun(BSTR funcName,BSTR val1)

{

  CString s2(val1);

  ULONG p = _wtol(s2);  //  使用 wscanf(s2,L"%p",&p); 结果始终为16的异常值 

  ......

}

posted @ 2020-06-02 16:06  IceArrow  阅读(141)  评论(0编辑  收藏  举报