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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WPF и Delphi, Создание dll использующей WPF 
:(
    Опции темы
erm0l0v
Дата 17.1.2011, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Здравствуйте.

Есть программа написанная на Delphi. (Доступа к исходному коду нет). Для неё требуется разработать dll использующею WPF

Я сделал dll на C# + C++ всё работает нормально, WindowsForms используются без проблем, но при попытке использовать компоненты WPF программа падает.

Судя по всему, не хватает каких то библиотек, или моя dll не может до них добраться.

Это происходит только тогда, когда я вызываю dll из Delphi.

Кто-нибудь может подсказать решение проблемы?
PM MAIL   Вверх
jonie
Дата 17.1.2011, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



erm0l0v, падает-то как? Вам надо почитать про crash dump analisis. 
Я бы начал с того, что в момент падения подключал бы отладчиком студийным к процессу и смотрел где упало (stack trace). Если падает в недрах неуправляемого бинарника, то брал бы ntsd за жабры, снимал бы полный full dump и ковырял бы windbg утилитой с подключенной sos.dll ....
В общем это всё чудовищно увлекательно и займет мозг не на один день.

У меня есть мнение что wpf требует для свой работы (для маршалинга) GUI-ёвый поток (т.е. чтобы поток создающий был создан в рамках STA, а не MTA апартаментов) ....


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
erm0l0v
Дата 18.1.2011, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо за совет, помогло)))

Сделал так:
Код

Thread thread = new Thread(RunThread);

thread.SetApartmentState(ApartmentState.STA);

thread.Start();


В RunThread создание WPF формы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




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


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

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