![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Ptica_Oz |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 1.3.2007 Репутация: нет Всего: нет |
есть длл на VC++. в правильности работы ф-ций я уверена (в виде ехе-ника они работали замечательно).подключаю ее к проге на делфи и прога запинаестя на winapi-ной ф-ции.
код длл:
код проги на дефи:
вылетаю на первом вызове ф-ции DocumentProperties. обращалась к спецам по делфе на этом форуме. они посоветовали в длл передавать PChar, что собственно я и делаю. но результата это не дало. помогите разобраться... |
||||
|
|||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
во-первых: делфийского кода маловато.
во-вторых: что мешает код отладить и найти ошибку? в-третьих: не в тот раздел вопрос... Добавлено @ 13:31 unicode, кстати, часом не продефайнен? -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Ptica_Oz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 1.3.2007 Репутация: нет Всего: нет |
а больше там ничего интересного нет. маленькая формачка с которой считываются значения переменных, как надо преобразуются, и вызывается та самая единственная и не повторимая ф-ция длл-ки как? если считаете нужным переместите |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
т.е. переменные не инициализируются? открываем проект .dll-ки в студди; жмем F5; указываем путь к .exe-шнику -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 2 Всего: 95 |
Это вам кажется, что ничего интересного нет. Мне, к примеру, было бы интересно посмотреть, как происходит загрузка библиотеки (статически или динамически), как происходит получение адреса функции (через GetProcAddress или дефинишеном напрямую), какие в итоге значения получаются и многое другое.... Обычным способом. Загрузить среду, где разрабатывалась Dll-ка, загрузить проект Dll и запустить его на отладку с указанием host-приложения, которое эту библиотеку будет подгружать (в данном случае - ваше приложение)... Это сообщение отредактировал(а) ama_kid - 14.3.2007, 13:59 -------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| Ptica_Oz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 1.3.2007 Репутация: нет Всего: нет |
ох, простите, про это-то я и забыла...
а с отладкой ща попробую... |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Ptica_Oz, значения всех параметров какие? Откуда берутся?
|
|||
|
||||
| Ptica_Oz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 1.3.2007 Репутация: нет Всего: нет |
Любитель, в делфях они берутся из формы и переводятся в тип PChar кроме одного, который имеет тип integer. в длл параметры типа char * и int. или я не про то говорю?
Это сообщение отредактировал(а) Ptica_Oz - 14.3.2007, 15:37 |
|||
|
||||
| Ptica_Oz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 1.3.2007 Репутация: нет Всего: нет |
при отладке говорит:
|
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Кстати да. В студии анси или уникод? |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
это в какой момент говорит? в функцию попадаеш?
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Ptica_Oz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 1.3.2007 Репутация: нет Всего: нет |
||||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 8 Всего: 158 |
Ptica_Oz,
так как падает на вызове, в который передается единственный("левый" хэндл обычно не приводит к падениям) параметр - имя, то, видимо, дело именно в уникодной сборке dll и твоих ловких приведениях типов -
если в проекте dll анси-строки, то это уже мистика какая-то... возможно, для прояснения ситуации тебе будет проще выложить exe+dll где-нибудь? |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
в чем проблема легко проверить: вместо "const_cast<TCHAR *>(pname)" пишем имя принтера и пробуем вызвать так.
зачем, кстати, передавать TCHAR*, если приходит char*? зачем передавать const TCHAR*, если потом идет каст к TCHAR*? -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Ptica_Oz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 1.3.2007 Репутация: нет Всего: нет |
честно говоря этот вызов я взяла из чужого кода и сильно не разбиралась (работало в ехе и ладно), потом пробовала шаманить с "const_cast<TCHAR *>(pname)" ничего не получилось. просто писать имя не пробовала, но попытаюсь... сейчас решила пойти в обход: сделала вместо длл ехе и вызываю его с параметрами из делфей через CreateProcess. ща олаживаю, попозже напишу чем дело кончилось. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |