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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> различие между IntPtr и IntPtr[], различие между IntPtr и IntPtr[] 
:(
    Опции темы
Shooroop
  Дата 17.11.2010, 06:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Есть ли различия между IntPtr и IntPtr[] при маршалинге для неуправляемго кода??
И еще вопрос по феншую ли я работаю(пример кода ниже)??

Код

typedef struct _st1
{
     int i;
}st1_h;
typedef struct _st2
{
    st1_h * lst;   // массив структур
    int num;        // размерность массива
}st2_h;
void fun1(st2_h* _in);   // прототип вызываемой функции

Код

[StructLayout(LayoutKind.Sequential)]
public struct st1
{
   Int32 i;  
};

[StructLayout(LayoutKind.Sequential)]
public struct st2
{
   IntPtr[] lst;   // массив структур // интересует вот это место, не будет ли длл'ка "визжать как свинья недорезанная"??
   Int32 num;   // размерность массива
};

[DllImport("cpp.dll", CharSet = CharSet.Auto)]
public static extern void fun1(IntPtr _in);    // прототип вызываемой функции

_st2 mas = new _st2();
mas.num = 5;
mas.lst = new IntPtr[mas.num];
for(Int32 i=0;i<mas.lst.Length;i++)
{
    _st1 temp_st = new _st1();
    temp_st.i = i;
    
    mas.lst[i] = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(_st1)));
    Marshal.StructureToPtr(temp_st, mas.lst[i], true);
}

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

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


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

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


 




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


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

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