вторник, 4 октября 2016 г.

Проекты, свободные от cg32.dll

В какой-то момент один из старых проектов начал плеваться сообщениями CodeGuard, хотя сам кодгард в проекте выключен. Различные вариации параметров сборки так и не помогли избавиться от включения библиотеки cg32.dll в проект. Очень долгим и муторным путём удалось вычистить включение этой либы в проект. Что пришлось проделать:
  1. Выключаем CodeGuard в опциях проекта
  2. Выключаем CodeGuard в самом билдере: Tools -> CodeGuard Configuration
  3. Выбираем Project -> Edit Option Source и два блока делаем такими:
  4. для DLL:
        <OPTIONS>
        <IDLCFLAGS value="-I$(BCB)\include 
          -I$(BCB)\include\vcl -src_suffix cpp -boa"/>
        <CFLAG1 value="-Od -H=$(BCB)\lib\vcl50.csm 
             -Hc -w- -Vx -Ve -X- -a8 -4 -b- -k- -vi -c -tW 
          -tWM"/>
        <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
        <RFLAGS value=""/>
        <AFLAGS value="/mx /w2 /zn"/>
        <LFLAGS value="-D"" -aa -Tpe -x -Gn"/>
      </OPTIONS>
      <LINKER>
        <ALLOBJ value="c0d32.obj Memmgr.Lib sysinit.obj 
                    $(OBJFILES)"/>
        <ALLRES value="$(RESFILES)"/>
        <ALLLIB value="$(LIBFILES) $(LIBRARIES)
                   import32.lib cp32mti.lib"/>
      </LINKER>
    
    а для приложения так:
      <OPTIONS>
        <IDLCFLAGS value="-I$(BCB)\Projects
             -I$(BCB)\include 
             -I$(BCB)\include\vcl -src_suffix cpp -no_tie -boa"/>
        <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm 
           -Hc -w- -Vx -Ve -X- -a8 -4 -b- -k- -vi -c -tW 
          -tWM"/>
        <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
        <RFLAGS value=""/>
        <AFLAGS value="/mx /w2 /zn"/>
        <LFLAGS value="-D"" -H:0x1000000 -Hc:0x100000 
                  -B:0x4000000 -S:0x1000000 -Sc:0x100000 -aa 
          -Tpe -x -Gn"/>
      </OPTIONS>
      <LINKER>
        <ALLOBJ value="c0w32.obj Memmgr.Lib 
             sysinit.obj $(OBJFILES)"/>
        <ALLRES value="$(RESFILES)"/>
        <ALLLIB value="$(LIBFILES) $(LIBRARIES) 
             import32.lib cp32mti.lib"/>
      </LINKER>
    
  5. Удаляем все *.obj и *.tds
  6. Делаем полный билд проекта
  7. После сборки проверяем командой
    tdump имя_проекта.exe > связи.txt