Получение программы только для запуска с определенными DLL в каталоге - PullRequest
0 голосов
/ 12 декабря 2010

Когда, например, я создаю программу и компилирую ее с MinGW, если я удаляю переменную окружения, мне нужно поместить dll в каталог, чтобы она работала

, т.е.libgcc_s_dw2-1.dll

без него программа даже не запустится.

При разработке с использованием QT я заметил, что мне нужна еще одна DLL в каталоге, это был QtCored4.dll, мне было интересно, какпрограмма знает, что dll отсутствует?

Также есть ли способ добавить что-то подобное в программу, например, определение выражения или что-то еще?

Мне нужен ответ, который может работать с C ++:)

Ответы [ 2 ]

1 голос
/ 12 декабря 2010

при разработке с QT я заметил, что мне нужна еще одна dll в каталоге, это был QtCored4.dll, мне было интересно, как программа знает, что dll отсутствует

Вы также можетеПопробуйте загрузить DLL самостоятельно во время выполнения и корректно обработать ошибку.См LoadLibrary и GetProcAddress.

1 голос
/ 12 декабря 2010

Об этом позаботится операционная система - поскольку ваша программа использует функции из DLL, она автоматически загружается при запуске вашей программы, и если DLL отсутствует, вы получите ошибку. Вы можете прочитать больше об этом процессе в MSDN: Динамическое связывание во время загрузки .

...