| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Мусор в названиях экспортируемых функций dll |
| Автор: Yak 5.11.2005, 13:22 |
| Короче тема такая - есть готовый код диспечера задач на VB 6.0 . Но он использует библиотеку, написанную на VC++. Так вот, с этой библиотекой и проблемы - при компиляции все вроде проходит без проблем, но когда лезешь в таблицу экспорта нех-редактором - там функция GetAllProcesses выглядит примерно так - ?GetAllProcesses@2vfgjh@@LAGRE_INTEGER@GYKFDW@@FJ Естесственно, VB ругается что функция не найдена. Перерыл все - а как сделать функции нормальный вид так и не нашел. Конеш можно опять тем же нех-редактором поправить, мусор нулями забить, но эт жутко неудобно, хотя и работает. Кто нить знает, от чего такая хрень происходит? и как от этого избавиться? P.S. Просьба сильно не ругатся, если такая темка где уже и была... |
| Автор: DeadSoul 5.11.2005, 13:39 |
| Родной, у тебя с памятью все в порядке? http://forum.vingrad.ru/index.php?showtopic=69722 |
| Автор: srd 5.11.2005, 13:39 | ||
Тебе нужно запретить декорирование имён экспортируемых функций. Самый простой способ - добавить в проект DEF файл, написать в нём список экспортируемых функций и пересобрать библиотеку.
Тогда имена не будут искажаться. Если вместо DEF-файла используешь __declspec(dllexport), то все объявления экспортируемых функций помести в блок extern "C" {}. Тогда функции будут декорироваться по правилам Си, а не Си++, т.е. вместо "мусора" будет один символ подчёрка. Добавлено @ 13:41 А, блин... Совсем склероз замучал |
| Автор: S.A.P. 5.11.2005, 13:50 |
| /* Offtop Баян */ |
| Автор: Yak 5.11.2005, 18:32 | ||||
Вот скачал исходник, малость его поправил, и с чем столкнулся - в структуру PSYSTEM_PROCESSES не передаются имена процессов. Точнее сюда PCWSTR pszProcessName = pProcesses->ProcessName.Buffer; передаются ?? и прервый символ из имени процесса. При этом все остальные параметры передаются без проблем. Кто нить знает почему?
|
| Автор: DeadSoul 5.11.2005, 19:00 | ||
|
| Автор: _hunter 7.11.2005, 12:02 |
| Yak, во-первых: как ты смотриш. во-вторых: кто тебя ТАК строки учил копировать? |