Система устроена таким образом что часть ф-ти находится в .dll файле.
Подскажите наиболее "платформонезависимую" ф-ю чтобы определить положение этого файла на диске в runtime.
(в моем случае .exe файл и .dll файл будут в разных директориях).
Компилятор — VS2008.
06.01.09 10:50: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Здравствуйте, Igor Sukhov, Вы писали:
IS>Система устроена таким образом что часть ф-ти находится в .dll файле.
IS>Подскажите наиболее "платформонезависимую" ф-ю чтобы определить положение этого файла на диске в runtime. IS>(в моем случае .exe файл и .dll файл будут в разных директориях).
IS>Компилятор — VS2008.
в каком смысле "платформонезависимую" ? если это екзе+длл+VS2008, то и работать будет под виндовсом.
и способы тут сильно платформо зависимые и привязаные к винде. Если особо не задумываться, в и предварительные условия добавить что ф-ция знает название нужной длл и требуется найти только путь к ней, в голову приходить использовать CreateToolhelp32Snapshot для создания снапшота текущего процесса и в нем найти нужную длл.
может проще будет при инсталяции определять место,куда должна попадать длл явно, ставить свою вместе с екзешкой, прописывать пути(например в реестре), использовать манифест для загрузки нужной весии длл? вообщем любым способом попробовать избежать длл хела.
Здравствуйте, cencio, Вы писали:
C>Здравствуйте, Igor Sukhov, Вы писали:
IS>>Система устроена таким образом что часть ф-ти находится в .dll файле.
IS>>Подскажите наиболее "платформонезависимую" ф-ю чтобы определить положение этого файла на диске в runtime. IS>>(в моем случае .exe файл и .dll файл будут в разных директориях).
IS>>Компилятор — VS2008.
C>в каком смысле "платформонезависимую" ? если это екзе+длл+VS2008, то и работать будет под виндовсом.
платформонезависимость в том смысле что я бы лучшше использовал ф-ю к-я называкется __getImagePath чем
AfxGetDll32Path.
C>и способы тут сильно платформо зависимые и привязаные к винде. Если особо не задумываться, в и предварительные условия добавить что ф-ция знает название нужной длл и требуется найти только путь к ней, в голову приходить использовать CreateToolhelp32Snapshot для создания снапшота текущего процесса и в нем найти нужную длл.
C>может проще будет при инсталяции определять место,куда должна попадать длл явно, ставить свою вместе с екзешкой, прописывать пути(например в реестре), использовать манифест для загрузки нужной весии длл? вообщем любым способом попробовать избежать длл хела.
проще не будет, т.к. во 1-ых инсталятора как такового нет и не будет (на это много причин — нет у пользователя прав, нет времени делать исталятор, пользователь не уммет пользоваться инсталятором) а вот 2-ых — это на самом деле не dll а файл с другим расширением к-е загружается как плагин в другое 3rd party приложение. в общем сложно.
Здравствуйте, Igor Sukhov, Вы писали:
IS>платформонезависимость в том смысле что я бы лучшше использовал ф-ю к-я называкется __getImagePath чем IS>AfxGetDll32Path.