Конвертировать BSTR* retVal что бы вывести string в printf

120
26 октября 2019, 23:50

на шарпе написана DLL вызывается в С++, в DLL передаю строку и обратно должен получить строку, но как ее вывести на экран.

строчка

printf("%s\n", retVal); //not working

С++ проект

int main() {
    CoInitialize(NULL);   //Initialize all COM Components
    MyInterop::IMyDotNetInterfacePtr pDotNetCOMPtr;
    HRESULT hRes =
            pDotNetCOMPtr.CreateInstance(MyInterop::CLSID_MyDotNetClass);
    if (hRes == S_OK) {
        BSTR str;
        BSTR* retVal = NULL;
        _bstr_t bstr1("This is the test string.");
        BSTR bstr;
        bstr = bstr1.copy();
        pDotNetCOMPtr->ShowCOMDialog();
        pDotNetCOMPtr->ComeToMe(bstr, retVal);
        printf("%s\n", retVal); //not working
        //call .NET COM exported function ShowDialog ()
    }
    CoUninitialize();
    return 0;
}

С# DLL

public string ComeToMe(string str) {
    System.Windows.Forms.MessageBox.Show(str);
    switch (str) {
        case "Hi":
            return "Hi world";
            break;
    }
    return "Nothing to Show";
}
Answer 1

BSTR не нужно конвертировать, это обычная строка из wchar_t с завершающим нулем. Для вывода можно использовать либо wprintf, либо printf со спецификатором для вывода строк широких символов (%S или %ls):

wprintf(L"%s\n", *retVal);
printf("%S\n", *retVal);
printf("%ls\n", *retVal);
READ ALSO
wordpress 5 и gutenberg вывести на странице изображения

wordpress 5 и gutenberg вывести на странице изображения

Необходимо вывести на странице с галереей изображения в том порядке в котором я их располагаю в редакторе gutenberg, а wp выводит их в порядке добавления...

137
Не получается войти в phpMyAdmin

Не получается войти в phpMyAdmin

Установил Apache2 и MySQL, настроил их, установил root пароль, в саму базу данных через консоль и root пароль заходит, а в phpMyAdmin никак не получаетсяВ...

151
include файла php для обработчика задач Cron

include файла php для обработчика задач Cron

Возникла проблема с обработчиком Cron, а если точнее то проблема с подключением файла через include в скрипте который запускает Cron

159
Построение nested sets дерева состоящего из collapse\spoiler

Построение nested sets дерева состоящего из collapse\spoiler

В БД имеется структура данных Nested sets и проект с использованием yii2/ Нужно отобразить эту структуру, в виде вложенных друг в друга Collapse

121