【转】Exe工程如何转为ATL COM工程

来源:互联网 发布:淘宝卖家直播条件 编辑:程序博客网 时间:2024/05/24 15:43
转来的,转来的~~~~~~~~~~~~~
HeatPrintAx涉及到工程转换及Activex控件发布,这篇文章只讲工程转换。
1.       由于原来是个Exe项目,所以首先要实现的是把exe工程转换为Atl Com工程。
步骤如下:
把原来的应用程序入口int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
改为DLL入口
BOOL APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/) ;
并在代码中加入STDAPI DllRegisterServer(void);STDAPI DllUnregisterServer(void);等COM组件注册接口;
在工程中加入def文件指定dll的输出函数;
在工程的setting中,把工程的输出文件格式改为dll,加入dll工程需要的预定义符号_USRDLL,在Link页的project options中,找到windows,在其后加入 /dll。
打开工程的setting,打开custom build页面,
在description项中输入Performing registration,
在commands项中输入regsvr32 /s /c "$(TargetPath)"
echo regsvr32 exec. time > "$(OutDir)/regsvr32.trg"
在Outputs项中输入$(OutDir)/regsvr32.trg;
生成一个标准的IDL文件,并加入工程中;

new一个ATL控件,作为原exe程序主窗口的父窗口,把原主窗口改为child样式,即可。

原创粉丝点击