0

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

我有多个 cpp 文件和多个头文件(头文件中的类,cpp 文件中的函数)。我的所有东西都可以很好地链接和编译,直到我将一个CreateWnd()函数放入我的一个类中

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

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

没有其他链接问题只是那个问题,一旦我将其注释掉,一切都会按预期运行。当我在网上研究这个时,有人说在找到入口点http://edn.embarcadero.com/article/27343时遇到问题。我尝试了推荐的方法,但没有运气。有没有人想猜一猜出了什么问题?

4

1 回答 1

0

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

于 2017-02-27T14:41:42.087 回答