代码编译,直到抛出CreateWnd()

时间:2013-05-13 20:18:48

标签: c++ delphi linker-errors c++builder delphi-xe3

我正在使用XE3并尝试使用我的第三方组件构建DLL。由于这是一个相当大的项目,我将描述它,然后详细说明手头的问题。

我有多个cpp文件和多个头文件(头文件中的类,cpp文件中的函数)。我有一切链接和编译精细UNTIL我将CreateWnd()函数放入我的一个类

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

现在它将使用此代码进行编译,但是当我将我的组件放在表单上并尝试运行该项目时,它会给我一个错误 ' [ilink32 error]错误:从'path'unit1.obj '引用的未解析的外部'__fastcall TICSByteEntry :: CreateWnd()

没有其他链接问题只是一个,一旦我评论一切都很好地按预期工作。当我在网上研究这个时,有人说它在找到入口点 http://edn.embarcadero.com/article/27343 时遇到了问题。我尝试了什么推荐,没有运气。任何人都想猜错了什么?

1 个答案:

答案 0 :(得分:0)

您应该覆盖CreateWnd(),而不是覆盖CreateParams()。这样,窗口就会以您想要的样式创建,创建后不需要更改。