关于WTL窗口类导出问题 看了网上解答,加了这么一句//template class __declspec(dllexport) ATL::CWindowImpl<QWindow, CWindow, CWinTraits<Q_WS_WINDOW>>;还是不行啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我看没法实现 ATL::CWindow本身不是导出类 你的类继承自它却想导出 除非你在导出类的。h里提供CWindow的全部代码 我这样写对吗?class __declspec(dllexport) ATL::CWindow;template class __declspec(dllexport) ATL::CWinTraits<Q_WS_WINDOW>;template class __declspec(dllexport) ATL::CWindowImpl<QWindow, CWindow, CWinTraits<Q_WS_WINDOW>>;分别导出这些类 模板是在模块内部使用的,不能跨越模块边界,有大量原因使模板类不能导出,几句话说不清楚,记得这条规则就行了。你见过有哪个库有导出过模板吗?包括系统的API。不仅仅不能导出模板类,普通导出函数(包括导出类的方法)的参数和返回值类型都不能跟模板类型有任何关联,即使是模板类的派生类型也不行,只能使用简单的数据类型,你必须想办法使用简单类型代替你的想法。例如,CWindow、CWindowImpl等等类其实都是对窗口句柄HWND的封装,你只需在导出函数中使用HWND类型即可,它只是一个普通的整数类型,导出没有任何问题,HWND传递到模块内部后,可以使用CWindow之类的封装类重新接管HWND操作即可。 Windows编程的小问题 截屏,要把滚动条未显示部分也截下来,但总是出错,麻烦帮忙看看 无窗口背景重绘的问题 如何在窗口中显示一幅bmp? 别人提供了几个组件 , .tlb文件,告诉我使用这几个组件再写一个dcom组件,对com不熟,寻求支援 如何在MDI窗体的菜单上点击不同按钮显示不同的窗口,窗口是嵌在主窗体中的就象平时使用的其它应用程序一样 ReadProcessMemory的使用 ATL类注册问题请教 用什么函数来判断一个文件夹中 是否有文件 com的聚合疑问 com_interface_entry()到底是关键字还是函数? WM_KEYDOWN处理←按键消息时的异常情况
class __declspec(dllexport) ATL::CWindow;
template class __declspec(dllexport) ATL::CWinTraits<Q_WS_WINDOW>;
template class __declspec(dllexport) ATL::CWindowImpl<QWindow, CWindow, CWinTraits<Q_WS_WINDOW>>;
分别导出这些类
你见过有哪个库有导出过模板吗?包括系统的API。不仅仅不能导出模板类,普通导出函数(包括导出类的方法)的参数和返回值类型都不能跟模板类型有任何关联,即使是模板类的派生类型也不行,只能使用简单的数据类型,你必须想办法使用简单类型代替你的想法。例如,CWindow、CWindowImpl等等类其实都是对窗口句柄HWND的封装,你只需在导出函数中使用HWND类型即可,它只是一个普通的整数类型,导出没有任何问题,HWND传递到模块内部后,可以使用CWindow之类的封装类重新接管HWND操作即可。