Linker Error при компиляции проекта
В Delphi 7 они у меня ставятся и без проблем работают. В C++ Builder 6 они ставятся, но при компиляции любого проекта с любой компонентой, которая, по-моему, использует GDI+, линкер выдает ошибки:
[Linker Error] Unresolved external 'GdiplusStartup' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\LIB\TMSC6.LIB|AdvGDIP.pas
[Linker Error] Unresolved external 'GdiplusShutdown' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\LIB\TMSC6.LIB|AdvGDIP.pas
[Linker Error] Unresolved external 'GdipDeleteGraphics' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\LIB\TMSC6.LIB|AdvGDIP.pas
[Linker Error] Unresolved external 'GdipCreateFromHDC' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\LIB\TMSC6.LIB|AdvGDIP.pas
...
и т.д.
В ридмишнике написано:
Note about GDI+
---------------
The TMS Component Pack requires GDI+ to be installed on the development system.
...
GDI+ is currently only required by following components:
TAdvToolBar, TAdOfficeHint, TAdvGlowButton,TAdvStringGrid,TAdvColumnGrid,TDBAdvGrid
Only when these components are used in your application, it might be necessary
to redistribute the GDI+ DLL with your application.
В XP уже есть GDI+, но я еще поставил Microsoft Platform SDK for Windows XP SP2, и DLL добавлял к проекту, нифига не пашет.
В чем прикол ?
Ещё комписятор может не видеть BPL, где собственно всё и бывает описано. Пропеши в Path'ах полный путь к BPL'лям, LIB'ам и HPP.
Т.к. код времени разработки помещается в bpi, при работе в Builder'е ты не заметиш отсутствия нужного файла, а вот при сборке, когда компилятор ищет твои функции в пакетах времени выполнения, он их не находит.
Да, кстати, функции типа "GdipDeleteGraphics" - это скорее всего проспо оболочки GDI+ функций, и они описаны именно в пакетах компонентов TMS Component Pack.
Цитата: Termi_uc
Посмотри где у тебя находится твои функции. Может быть, надо в Project->Edit Option Source в теге <LIBRARIES> прописать соответствующюю либу. Или подключить соответствующий пакет BPL в Options->Project->Packages->Runtime Packages (если используеш галочку Build whit run-time packages).
Ещё комписятор может не видеть BPL, где собственно всё и бывает описано. Пропеши в Path'ах полный путь к BPL'лям, LIB'ам и HPP.
Т.к. код времени разработки помещается в bpi, при работе в Builder'е ты не заметиш отсутствия нужного файла, а вот при сборке, когда компилятор ищет твои функции в пакетах времени выполнения, он их не находит.
Да, кстати, функции типа "GdipDeleteGraphics" - это скорее всего проспо оболочки GDI+ функций, и они описаны именно в пакетах компонентов TMS Component Pack.
Ещё комписятор может не видеть BPL, где собственно всё и бывает описано. Пропеши в Path'ах полный путь к BPL'лям, LIB'ам и HPP.
Т.к. код времени разработки помещается в bpi, при работе в Builder'е ты не заметиш отсутствия нужного файла, а вот при сборке, когда компилятор ищет твои функции в пакетах времени выполнения, он их не находит.
Да, кстати, функции типа "GdipDeleteGraphics" - это скорее всего проспо оболочки GDI+ функций, и они описаны именно в пакетах компонентов TMS Component Pack.
Все проблему решил:
1. либо добавляешь к проекту gdiplus.lib
2. либо вставляешь строку
Код:
#pragma comment(lib, "gdiplus.lib")