
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
22.11.2006, 16:17
|
|||
|---|---|---|---|
|
|||
AnsiString и чужая библиотека в dll |
|||
|
#18+
Здравствуйте. Есть проблема. Создаю dll с помощью dll wizard. В него добавляю свои функции и чужую библиотеку Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. В функции formKey - используется для инициализации объекта оператор new и потом деструктор для объекта. В свойствах проэкта галка Linker->Use dynamic RTL - убрана, галка Packages->Bild with runtime packages - не убрана (если ее убрать - вываливаются ошибки [Linker Error] Unresolved external '__fastcall MyObjectC::~MyObjectC()' referenced from C:\DLLUNIT.OBJ) Таким образом галка Bild with runtime packages - не убрана. Этот cpp-файл я build'ю и затем из командной строки пишу implib dllprj.lib dllprj.dll Получившуюся dllprj.dll я теперь хочу протестить. Для этого создаю новый проэкт - Console Application, код которого следующий: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Код: plaintext 1. Пробовал создать Console Application, в него добавить все функции, которые я в dll добавляю и в main'е вызывать formKey(); - работает нормально, как и ддолжно - без ошибок. Подскажите, может кто уже сталкивался с подобной проблемой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2006, 16:32
|
|||
|---|---|---|---|
AnsiString и чужая библиотека в dll |
|||
|
#18+
У вас соглашения о вызовах одинаковые ? Похоже extern "C" __declspec(dllexport)void formKey(); не соответствует typedef void (WINAPI *CI_formKey)(void ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2006, 17:12
|
|||
|---|---|---|---|
|
|||
AnsiString и чужая библиотека в dll |
|||
|
#18+
А как задать одинаковые соглашения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2006, 17:17
|
|||
|---|---|---|---|
AnsiString и чужая библиотека в dll |
|||
|
#18+
если хочешь экспортировать функцию как formKey, пиши def-файл, по умолчанию она экспортируется как какое-нить _formKey@2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2006, 17:18
|
|||
|---|---|---|---|
AnsiString и чужая библиотека в dll |
|||
|
#18+
if(cForm==NULL)айайай; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2006, 17:21
|
|||
|---|---|---|---|
|
|||
AnsiString и чужая библиотека в dll |
|||
|
#18+
А нельзя без def файла обойтись - мне нужно, чтобы был всего один файл - dll. Как-то можно это в dll указать? автор по умолчанию она экспортируется как какое-нить _formKey@2 Как определить какое имя будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2006, 17:27
|
|||
|---|---|---|---|
|
|||
AnsiString и чужая библиотека в dll |
|||
|
#18+
Сообщаю: Выполнил в командной строке tdump dllPrj.dll > dump.txt В файле dump.txt нашел строки: RVA Ord. Hint Name -------- ---- ---- ---- 00001640 1 0005 _formKey В проге - заменил Код: plaintext 1. Код: plaintext 1. Заработало, мать ее ети!!!:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2006, 17:30
|
|||
|---|---|---|---|
|
|||
AnsiString и чужая библиотека в dll |
|||
|
#18+
Сейчас еще 1. протестю с AnsiString'ом 2. Вопрос остается открытым - как при создании dll сделать задать имена функций, чтобы потом их можно было дергать с таким же названием ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.11.2006, 09:48
|
|||
|---|---|---|---|
|
|||
AnsiString и чужая библиотека в dll |
|||
|
#18+
c AnsiString - не выходит - ругается - компилится нормально а в рантайме вылетает AccessViolation функцию написал такую: Код: plaintext 1. Код: plaintext 1. 2. 3. Как сделать, чтобы работало не знаю, сейчас просто заменил на char* как борланд советует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.11.2006, 12:11
|
|||
|---|---|---|---|
AnsiString и чужая библиотека в dll |
|||
|
#18+
tdump ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.11.2006, 17:30
|
|||
|---|---|---|---|
|
|||
AnsiString и чужая библиотека в dll |
|||
|
#18+
чего tdump?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.11.2006, 10:59
|
|||
|---|---|---|---|
AnsiString и чужая библиотека в dll |
|||
|
#18+
смотри, под каким именем экспортируется функция. Плюс соглашения о вызове в длл и в приложении должны совпадать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/search_topic.php?author=Mr_gFd&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
7ms |
get forum list: |
25ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
68ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 614ms |
| total: | 816ms |

| 0 / 0 |
