Есть функция которая в качестве параметра получает BSTR строку. Мне нужно передать константу. Строку типа "C:\TEMP\" но в BSTR. Как это лучше всего сделать?
... << RSDN@Home 1.1 beta 2 >>
#include <comdef.h>
void func( BSTR bstr) {
// ...
}
void main() {
func( _bstr_t(L"c:\\temp\\").GetBSTR());
}
#pragma comment( lib, "oleaut32.lib")
Posted via RSDN NNTP Server 1.7 beta
Здравствуйте, zelyony, Вы писали:
Z>#include <comdef.h>
Z>void func( BSTR bstr) {
Z>// ...
Z>}
Z>void main() {
Z>func( _bstr_t(L"c:\\temp\\").GetBSTR());
Z>}
Z>#pragma comment( lib, "oleaut32.lib")
Очень хороший вариант, но громоздко.
и
error LNK2019: unresolved external symbol "void __stdcall _com_issue_error(long)" (?_com_issue_error@@YGXJ@Z) referenced in function "public: __thiscall _bstr_t::_bstr_t(char const *)" (??0_bstr_t@@QAE@PBD@Z)
error LNK2019: unresolved external symbol "unsigned short * __stdcall _com_util::ConvertStringToBSTR(char const *)" (?ConvertStringToBSTR@_com_util@@YGPAGPBD@Z) referenced in function "public: __thiscall _bstr_t::Data_t::Data_t(char const *)" (??0Data_t@_bstr_t@@QAE@PBD@Z)
... << RSDN@Home 1.1 beta 2 >>
Здравствуйте, Keeper_andrew, Вы писали:
K_>Здравствуйте, zelyony, Вы писали:
Z>>#include <comdef.h>
Z>>void func( BSTR bstr) {
Z>>// ...
Z>>}
Z>>void main() {
Z>>func( _bstr_t(L"c:\\temp\\").GetBSTR());
Z>>}
Z>>#pragma comment( lib, "oleaut32.lib")
K_>Очень хороший вариант, но громоздко.
K_>и
K_>error LNK2019: unresolved external symbol "void __stdcall _com_issue_error(long)" (?_com_issue_error@@YGXJ@Z) referenced in function "public: __thiscall _bstr_t::_bstr_t(char const *)" (??0_bstr_t@@QAE@PBD@Z)
K_>error LNK2019: unresolved external symbol "unsigned short * __stdcall _com_util::ConvertStringToBSTR(char const *)" (?ConvertStringToBSTR@_com_util@@YGPAGPBD@Z) referenced in function "public: __thiscall _bstr_t::Data_t::Data_t(char const *)" (??0Data_t@_bstr_t@@QAE@PBD@Z
Тогда еще так можно
void main() {
func( CComBSTR(L"c:\\temp\\"));
}