2013-05-13 84 views
0

我正在使用XE3并试图用我的第三方组件构建一个DLL。由于这是一个相当大的项目,我将对其进行描述,然后详细介绍手头的问题。代码编译直到CreateWnd()抛出

我有多个cpp文件和多个头文件(头文件中的类,cpp文件中的函数)。我把一切都连接和编译罚款,直到我把CreateWnd()功能到我班的一个

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

现在它将会与此代码在编译它,但是当我把我的组件在窗体上,并尝试运行该项目它一旦__fastcall TICSByteEntry :: CreateWnd方法()从‘path'unit1.obj’

没有其他链接问题只是一个和参考我:给我一个错误 “未解决的外部[ilink32错误]错误”评论一切正常,如预期一样。当我在网上搜索时,有人说找到入口点http://edn.embarcadero.com/article/27343有问题。我尝试了什么建议,没有运气。任何人都想猜测什么是错的?

+0

你有没有尝试链接到定义? – PlasmaHH 2013-05-13 20:22:52

+0

'unit1'项目是否包含定义这个的cpp文件?或者这是在一个静态库中,你是否引用了静态库。我通常使用VS进行开发,但这听起来像是您缺少链接器引用或链接器包含语句。 – pstrjds 2013-05-13 20:23:00

回答

0

而不是覆盖CreateWnd()你应该覆盖CreateParams()。这样就可以用你想要的风格创建窗口,创建后不需要改变窗口。