Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
25 / 41 / 14
Регистрация: 27.03.2014
Сообщений: 754
1

Конвертация string из с++ dll в c# клиент

07.07.2017, 09:59. Показов 5195. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет, есть c++ dll с таким методом
C++
1
2
extern "C" __declspec(dllexport)
std::string myconvertmethod(std::string in){...}
в c# клиенте объявил импорт вида
C#
1
2
[DllImport("mylib.dll", CallingConvention = CallingConvention.Cdecl)]
        public static extern string myconvertmethod(string value);
но не работает! типы не совпадают! как сделать правильно чтобы работало?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2017, 09:59
Ответы с готовыми решениями:

Конвертация из System::String^ в std::string
как перевести из System::String^ в std::srting

Использование String Tables в .dll(.dll.mui) (Для VB .NET)
Здравствуйте. Нужно извлечь(а потом запоковать) таблицу строк(string tables ). Допустим есть...

Конвертация string в float
Подскажиете, пожалуйста, есть строка string s= "832.26"; хочу переконвертировать ее в тип float...

Конвертация String и char
Всем добро!:senor: Проблема с конвертацией String и char, а именно вот таким способом я получаю...

22
278 / 186 / 75
Регистрация: 12.04.2017
Сообщений: 1,088
Записей в блоге: 2
08.07.2017, 21:03 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от nmcf Посмотреть сообщение
память автоматически, что ли, выделяется для удлинения строки?
Что имели в виду?
В C# Про Пустую строку спрашиваете?
Цитата Сообщение от RunningMan Посмотреть сообщение
string dest = "";
Какая-то начальная ёмкость у строки есть. У типа string не знаю подробностей.
у StringBuilder начальная емкость 16 символов . В исходниках копаться нужно.
0
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
09.07.2017, 09:35 22
Цитата Сообщение от RunningMan Посмотреть сообщение
Что имели в виду?
dest пустая. Куда записывает функция? Память как-то скрыто выделяется?
Цитата Сообщение от RunningMan Посмотреть сообщение
Какая-то начальная ёмкость у строки есть.
Ну а если 100 символов записать или 200?
0
278 / 186 / 75
Регистрация: 12.04.2017
Сообщений: 1,088
Записей в блоге: 2
09.07.2017, 11:34 23
nmcf, если данные отправляем в нативную функцию, то используем string.
C#
1
Func(string s);
Если результат нужно вернуть из функции, то StringBuilder.
C#
1
Func(StringBuilder sb);
Цитата Сообщение от nmcf Посмотреть сообщение
Ну а если 100 символов записать или 200?
StringBuilder и указать размер.
C#
1
2
StringBuilder sb = new StringBuilder(100);
Func(sb);

Цитата Сообщение от nmcf Посмотреть сообщение
dest пустая. Куда записывает функция? Память как-то скрыто выделяется?

http://csharpindepth.com/Artic... rings.aspx
In the current implementation at least, strings take up 20+(n/2)*4 bytes (rounding the value of n/2 down), where n is the number of characters in the string.
Цитата Сообщение от RunningMan Посмотреть сообщение
string dest = "";
В нативную функцию отправили эти 20+(n/2)*4 байт. Просто блок памяти.
Если бы отправили какой-то другой тип с этим размером, то ничего бы не изменилось.
0
09.07.2017, 11:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.07.2017, 11:34
Помогаю со студенческими работами здесь

Конвертация String в VARCHAR()
если у меня есть переменная String var="text"; как мне выполнить запрос : INSERT INTO...

Конвертация string в IntPtr
Привет Всем Знающие, помогите, как можно конвертировать string в IntPtr Мой код: VAM = new...

Конвертация из string в positive
Пишу ЭС на Visual Prolog. Предполагается, что пользователь должен вводить нужные параметры с...

Конвертация string в LPCWSTR
Здравствуйте уважаемые программисты! Столкнулся с проблемой загрузки путей текстур из файла....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru