Здравствуйте, Pavel Dvorkin, Вы писали:
PD>В этом случае обрабатывается не только ее отсутствие, но и любые проблемы, связанные с загрузкой. А их много бывает. Можно при желании GetLastError еще вызвать.
Ещё для порядка хорошо бы вызвать GetProcAddress.
Если нам не помогут, то мы тоже никого не пощадим.
При программировании для win mobile достаточно часто в код приходится вносить строки типа
[DllImport("coredll.dll")]
Однако в некоторых типах устройств нужных мне dll может не быть. В этом случае программа должна продолжить работу, не задействовав те функции, которые завязаны на внешнюю dll.
Как мне реализовать проверку наличия нужных мне внешних ресурсов?
Может какой нибудь хитрый try catch?
Здравствуйте, AntonAD, Вы писали:
AAD>При программировании для win mobile достаточно часто в код приходится вносить строки типа
AAD> [DllImport("coredll.dll")]
AAD>Однако в некоторых типах устройств нужных мне dll может не быть. В этом случае программа должна продолжить работу, не задействовав те функции, которые завязаны на внешнюю dll. AAD>Как мне реализовать проверку наличия нужных мне внешних ресурсов? AAD>Может какой нибудь хитрый try catch?
Не нужно хитрого — самым обычным оборачивайте вызов вашего импортированного метода и ловите DllNotFoundException:
if (!x.Init())
{
MessageBox.Show("Can't load X.DLL", "Error");
return;
}
В этом случае обрабатывается не только ее отсутствие, но и любые проблемы, связанные с загрузкой. А их много бывает. Можно при желании GetLastError еще вызвать.
Здравствуйте, AntonAD, Вы писали:
AAD>При программировании для win mobile достаточно часто в код приходится вносить строки типа AAD>
AAD> [DllImport("coredll.dll")]
AAD>
AAD>Однако в некоторых типах устройств нужных мне dll может не быть. В этом случае программа должна продолжить работу, не задействовав те функции, которые завязаны на внешнюю dll.
AAD>Как мне реализовать проверку наличия нужных мне внешних ресурсов? AAD>Может какой нибудь хитрый try catch?
обернуть DllImport'ы в #if .. #endif ? и собирать для каждой платформы\устройства с нужными директивами компилятора ?
Здравствуйте, depend86, Вы писали:
D>обернуть DllImport'ы в #if .. #endif ? и собирать для каждой платформы\устройства с нужными директивами компилятора ?
Начинал именно так, но слишком много разных вариантов.
PD>В этом случае обрабатывается не только ее отсутствие, но и любые проблемы, связанные с загрузкой. А их много бывает. Можно при желании GetLastError еще вызвать.