Я написал C ++ DLL, которая подключается к базе данных Sybase с использованием собственной библиотеки C для Sybase. Я могу собрать и запустить программу на своем диске C, а другие могут запустить ее со своих дисков C, и все работает. Но в некоторых ситуациях моя DLL и библиотека Sybase находятся на диске F, а не на диске C. В этих случаях моя DLL, очевидно, не может загрузить Sybase DLL.
Мне немного непонятно, как работает связывание, но, исходя из моего неполного понимания, я предпочитаю, что расположение C-диска в DLL - это то, что встроено в конечную DLL, что и приводит к ее отказу, когда он запускается с другой буквы диска. Это звучит как разумное объяснение? Какие-либо другие причины, по которым моя DLL не сможет загрузить Sybase DLL при запуске с другой буквы диска? Любая идея, как я могу решить это?
РЕДАКТИРОВАТЬ: Оказывается, это был неправильный вопрос, но это привело меня в правильном направлении. Sybase DLL использует INI-файл для определения деталей соединения с базой данных, и у меня был путь к этому жестко запрограммированному на диске C.