![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
kiler4747 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 28.2.2011 Репутация: нет Всего: нет |
Написал программу для копирования папки на C#, а сейчас решил написать сами функции на C++(dll) и сделать многопоточной, но возникает ошибка входе в функцию из dll, проверял вызов функции в С++ - все нормально. Хочу запустить сначала фоновый поток для поиска количества файлов и увеличивать каждый раз maximum в progressBar(bar) и сразу запустить поток для копирования.
dll(C++)
Добавлено через 54 секунды Что неправильно? |
||||
|
|||||
jonie |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
давно ли CString стал мапиться на string из C# ?
мапиться могут только относительно несложный типы, например const TCHAR*, CString тут не прокатит
а, если речь про MaxValueWchar - тогда она вообще из DLL нигде (по этому коду) не экспортируется.. да и называться она, скорее всего, будет _MaxValueWchar .. Это сообщение отредактировал(а) jonie - 1.6.2011, 22:26 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||
|
|||||
kiler4747 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 28.2.2011 Репутация: нет Всего: нет |
Согласен что CString несовместим с string(C#), поэтому и писал вторую функцию с wchar_t(C++ знаю не очень).
MaxValueWchar, у меня в программе правильно написано, сюда не все скопировал. Когда и почему функции из dll надо вызывать с добавлением _ , раньше писал без _ и все работало, хотя когда спрашивал насчет вызова функций писали что скорее всего функция должна начинаться с _.
Ошибка возникает при входе в функцию из dll: File: f:\dd\vctools\vc7libs\ship\atlmfc\include\atlsimpstr.h Line: 393 Expression: (iChar >= 0) && (iChar <= GetLength()) Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() |
|||
|
||||
kiler4747 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 28.2.2011 Репутация: нет Всего: нет |
Разобрался почему не работали функции - не ту функцию вызывал. Но основная проблема осталась: Как из dll(C++) изменить в ProgressBar свойства Value и Maximum?
функции из dll(C++)
|
||||
|
|||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
вам надо каллбэк. Я накатал пример (в аттаче) с вызовом калбэка. но использовать его надо крайне осторожно: я не весьма уверен что сам создаваемый делегат не надо сохранять в GC (есть такой метод GCHandle.Alloc - это надо изучать).
Присоединённый файл ( Кол-во скачиваний: 8 ) ![]() -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |