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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Маршалинг CALLBACK 
:(
    Опции темы
V0LT
Дата 26.8.2009, 07:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

        public delegate void AddToLog(String str);
        public AddToLog myDelegate;
        public void AddToLogMethod(String str)
        {
            richTextBox1.Text += str;
        }
        public delegate void CallbackHandler([MarshalAs(UnmanagedType.LPStr)] String text);
        [DllImport("DLL.dll", CharSet=CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
        extern static void CalcResults(CallbackHandler cbFunc, String text);
        void Callback([MarshalAs(UnmanagedType.LPStr)] String text)
        {
            myDelegate = new AddToLog(AddToLogMethod);
            Invoke(myDelegate, new object[] { text });
        }
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            CalcResults(Callback,"227.0.0.1:7777");
        }


Приходят закорючки вместо строки "227.0.0.1:7777", меняю [DllImport("DLL.dll", CharSet=CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] на [DllImport("DLL.dll", CharSet=CharSet.Auto)] приходит только первый символ тоесть 2 ... куда копать что делать подскажите

DLL написана на С++

Это сообщение отредактировал(а) V0LT - 26.8.2009, 07:44
PM MAIL ICQ   Вверх
V0LT
Дата 29.8.2009, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Подскажите хоть в какую сторону копать или вообще по другому сделать ... исходные тексты DLL на С++ есть ... могу что нибудь поменять ... лишь бы принцип остался тот же 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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