Код компилируется до создания CreateWnd ()

Я использую XE3 и пытаюсь создать DLL с моим сторонним компонентом. Поскольку это довольно большой проект, я опишу его, а затем подробно опишу данный вопрос.

У меня есть несколько файлов cpp и несколько файлов заголовков (классы в файлах заголовков, функции в файлах cpp). У меня есть все, что связывает и компилирует нормально, пока я не поставлю CreateWnd() работать в одном из моих классов

void __fastcall TICSByteEntry::CreateWnd(void)
{
TCustomControl::CreateWnd();
SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) | WS_CLIPSIBLINGS);
}

Теперь он будет скомпилирован с этим кодом, но когда я помещу свой компонент в форму и попытаюсь запустить этот проект, он выдаст мне ошибку
[ошибка ilink32] Ошибка: Неразрешенная внешняя ‘__fastcall TICSByteEntry :: CreateWnd () ссылается на’ path’unit1.obj

Никаких других проблем со связыванием, кроме этого, и как только я это закомментирую, все работает хорошо, как и ожидалось. Когда я изучал это онлайн, кто-то сказал, что у него проблемы с поиском точки входа. http://edn.embarcadero.com/article/27343. Я попробовал то, что было рекомендовано, и не повезло. Любой хочет догадаться, что не так?

0

Решение

Вместо переопределения CreateWnd() вы должны переопределить CreateParams(), Таким образом, окно создается с нужным вам стилем и не нуждается в изменении после создания.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector