我正在使用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 时遇到了问题。我尝试了什么推荐,没有运气。任何人都想猜错了什么?
答案 0 :(得分:0)
您应该覆盖CreateWnd()
,而不是覆盖CreateParams()
。这样,窗口就会以您想要的样式创建,创建后不需要更改。