相关疑难解决方法(0)

哪个是在C/C++中将BSTR参数转换为ANSI的更好代码?

到目前为止,我发现我可以用两种(多种?)方式将传入的BSTR转换为ANSI,我很想知道在速度/效率等方面是否比另一种"更好".

我一直使用的方式是使用USES_CONVERSIONW2A宏,例如

BSTR __stdcall F(BSTR p1, BSTR p2 ) {
    USES_CONVERSION;

    LPSTR sNum1 = W2A( p1 );
    LPSTR sNum2 = W2A( p2 );
Run Code Online (Sandbox Code Playgroud)

然而,最近我遇到了另一种技术:

BSTR __stdcall F(BSTR p1, BSTR p2 ) {
    long amt = wcstombs( NULL, p1, 1 );
    sNum1 = (char *) malloc( amt ); 
    wcstombs( sNum1, p1, amt );
    *(sNum1 + amt) = '\0';

    amt = wcstombs( NULL, p2, 1 );
    sNum2 = (char *) malloc( amt ); 
    wcstombs( sNum2, p2, amt ); …
Run Code Online (Sandbox Code Playgroud)

c c++ string bstr cstring

3
推荐指数
1
解决办法
4761
查看次数

标签 统计

bstr ×1

c ×1

c++ ×1

cstring ×1

string ×1