Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Опять же, структура С++ в C# 
V
    Опции темы
akizelokro
Дата 30.7.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: нет
Всего: 5



Есть библиотека на С++. Какой тип строковых переменных надо использовать, чтобы потом без проблем с конвертацией использовать эту библиотеку в С#?



--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
Любитель
Дата 30.7.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



А из чего выбираем, собственно говоря? smile


--------------------
PM MAIL ICQ Skype   Вверх
akizelokro
Дата 30.7.2008, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: нет
Всего: 5



Решил ограничиться задачей передавать информацию через строковую переменную. Пока нашел несколько методов типа StringToHGlobalAnsi


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
Любитель
Дата 30.7.2008, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



Эээ... Если у тебя обычная C-style строка (неважно, анси или юникод) не проще довериться PInvoke?


--------------------
PM MAIL ICQ Skype   Вверх
akizelokro
Дата 30.7.2008, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: нет
Всего: 5



У меня уши пухнут, когда я бросаю взгляд на пример с PInvoke. (это я четыре дня не курю, но по крыше давит мощно). Сейчас я в состоянии, что больше трех строк кода не воспринимаю. 



--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
akizelokro
Дата 31.7.2008, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: нет
Всего: 5



сделал в таком виде:

функция в dll (примерная)

Код

extern "C" __declspec(dllexport) int __stdcall  MyMessage(TCHAR * chstr) {
    MessageBox(NULL, chstr, _T("Message from DLL"), MB_OK);
    TCHAR * tchstr = _T("Let's my people go");
    _tcscpy(chstr, tchstr );
    return 0;


cs файл
 
Код

       [DllImport ("C:\\job\\SimpleDLL\\debug\\simpledll.dll")]
        static extern int MyMessage(IntPtr intptr);

        static void Main(string[] args)
        {
            string str = "Опаньки!";
            IntPtr intptr = Marshal.AllocHGlobal(2048);
            Marshal.Copy(str.ToCharArray(), 0, intptr, 8);
            MyMessage(intptr);
            string ts = Marshal.PtrToStringUni(intptr);



--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0820 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.