Я использую Datasnap в Delphi 2007. На некоторых конкретных машинах, когда пользователь пытается открыть приложение, он получает ошибку «Ошибка загрузки Midas.DLL», и приложение вылетает.
Я никогда не мог определитьв каком сценарии это происходит, потому что я всегда распространяю MIDAS.DLL с моими приложениями, и этот файл всегда присутствует в той же папке, что и приложение EXE.
Я знаю, что мог бы использовать MidasLib, чтобы избежать этого, но я могуНе делайте этого, потому что мое приложение использует защиту от взлома, которая зашифровывает EXE и в итоге не совместима со встроенным Midaslib.Так что Midaslib - не вариант для меня.
Так что я пытаюсь сделать небольшой тест, когда приложение проверяет, загружен ли Midas.DLL, ДО того, как приложение вылетает, так что я могу быть профессионалом.-активно и зарегистрируйте библиотеку DLL до сбоя приложения.
Вот что я попробовал:
function testMidas : boolean;
var c : tclientdataset;
begin
try
c := tclientdataset.create(nil);
c.loadfromfile('c:\somefile.dat');
c.free;
result := true;
// everything fine
except
result := false;
// problem, do something to fix
end;
end;
Эта функция работает, она не будет работать, если Midas.dll не загружен и приведет к ложному результату,так что я могу сделать что-то, чтобы решить проблему.НО я хочу получить тот же результат, не вызывая loadfromfile.Только создание TClientDataset не создаст исключение.
Есть идеи, пожалуйста?
Спасибо!