на шарпе написана 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";
}
BSTR не нужно конвертировать, это обычная строка из wchar_t с завершающим нулем. Для вывода можно использовать либо wprintf, либо printf со спецификатором для вывода строк широких символов (%S
или %ls
):
wprintf(L"%s\n", *retVal);
printf("%S\n", *retVal);
printf("%ls\n", *retVal);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Необходимо вывести на странице с галереей изображения в том порядке в котором я их располагаю в редакторе gutenberg, а wp выводит их в порядке добавления...
Установил Apache2 и MySQL, настроил их, установил root пароль, в саму базу данных через консоль и root пароль заходит, а в phpMyAdmin никак не получаетсяВ...
Возникла проблема с обработчиком Cron, а если точнее то проблема с подключением файла через include в скрипте который запускает Cron
В БД имеется структура данных Nested sets и проект с использованием yii2/ Нужно отобразить эту структуру, в виде вложенных друг в друга Collapse