Как отладить файл DLL в Delphi

Сканер и Buffer Reader больше не используются, так как Java предоставляет лучший способ достичь того же результата с меньшим количеством кода. Я вижу по крайней мере три возможных подхода для решения вашей проблемы:

подход 1 : если вы можете использовать хотя бы Java 8, то я бы предложил использовать java.nio .file библиотеки в читают файл как поток строк :

Stream linesStream=Files.lines("cars.txt");

Затем, в зависимости от того, что вам нужно сделать, вы можете использовать либо forEach [115 ], который будет зацикливаться на каждой строке потока:

linesStream.forEach(e -> e.myMethod());

или Java Collectors для выполнения необходимых вычислений. Хороший учебник о коллекционерах можно найти здесь здесь . Вы также можете использовать коллекторы для разделения вашей строки и т. Д ...

подход 2 : вы можете использовать библиотеки Apache Commons для достижения той же цели. В частности, вы можете использовать FileUtils и StringUtils . Например:

File carFile=new File("cars.txt");

LineIterator lineIterator=lineIterator(carFile);

for(String line : lineIterator) {

         String[] my values=StringUtils.split(line);

//do whatever you need

} 

подход 3 : используйте Джексона, чтобы преобразовать ваш файл в объект json или java, который вы затем сможете использовать для своих собственных преобразований. Здесь приведен пример, объясняющий, как преобразовать CSV в JSON. Немного покопавшись в документации Джексона, вы можете применить ее к своему делу.

6
задан Peter Mortensen 3 March 2013 в 18:41
поделиться

3 ответа

В Delphi 7 Вы сделали бы это:

Проект | Опции | Компилятор | Отладка | Отладочная информация (проверка)

Затем перейдите к Выполненному | Параметры | Хост-приложение и введите имя своего exe.

Добавьте некоторые точки останова в своем коде DLL и затем нажмите выполненный. Ваш exe будет загружен, и можно отладить части DLL в Delphi IDE.

Если Ваш exe уже работает, нажмите Run | Присоединение к процессу

- Я протестировал это и нашел, что также должен был проверить, "Включают удаленные отладочные символы" на странице Linker опций проекта в Delphi 7.

Я смог заставить точку останова поражать использование Выполнения | Параметры, а также Выполнение | Присоединение для обработки методов. Тест DLL, который я создал, имел единственный stdcall, функционирует, и был динамично загружен консольным приложением Visual C++.

21
ответ дан 8 December 2019 в 04:31
поделиться

Мы используем это довольно часто (использующий Delphi).

Убедитесь:

  1. Включите все параметры отладки на всех проектах (файл (файлы) DLL). И отключите оптимизацию.
  2. Обязательно установите хост-приложение на правильный EXE-файл.
  3. Создайте файл (файлы) DLL.

Можно теперь поместить точки останова и в dll и в exe. И выполненный файл DLL от IDE. Это запускает EXE-файл и остановки в требуемых точках останова.

Это даже работает, когда файлы DLL динамично связаны (если они разгружены, синие точки исчезают).

4
ответ дан 8 December 2019 в 04:31
поделиться

Предложенный Gamecat метода является чем-то, что я использовал прежде.

Иначе: у Меня есть проект DLL, но я также делаю проект "испытательного стенда". Проект "испытательного стенда" имеет одну форму, которая может непосредственно осуществить код, который обычно использовался бы в DLL.

0
ответ дан 8 December 2019 в 04:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: