高分求救:用ATL COM APPWINZARD生成的DLL如何导出函数呀?谢谢!!!!!!!!!!!! yong lian jie ku (.lib) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 to wyongyong:那函数应该怎么声明呢? 只需两步:1.你的函数应该这样说明:STDAPI YourFunction(...)这是你的函数返回值是HRESULT或者:datatype WINAPI YourFunction(...)datatype可为任意值。2.在你的项目的.def文件中,在EXPORTS节中加上:YourFunction @n你可以看到这个文件已有几行类似的语句了,n为已有的数加一。 to horris:好的,终于有高手帮我了,谢谢!我试试先,搞定后回来加分 有向导的吗,在你要建立的接口点击右键,菜单里有的很方便,ATL建立的DLL一般是暴露接口,通过接口访问函数 如果只是导出函数ATL的DLL是一般的WIN32 DLL,怎么导出函数和其他的DLL没有任何的区别 千万不要照抄.def文件中已有的几句:YourFunction @n PRIVATE有PRIVATE关键字会使你在VC中引用这个DLL时看不到YourFunction! to horris:谢谢啊!你还在呀!导出函数没问题了不好意思,我还想请教一下,在这个DLL中能不能让它一加载时弹出一个对话框呢?因为,我还想弹出一个对话框让人选择几个参数,然后再根椐这个参数再加载相应的另一个DLL。 本来用MFC extension DLL 应该是很容易实现的,但因为这个要提供给其它开发工具使用(如CB Dephi之类)所以我想这样用了MFC类,可能是不行吧,所以才想用COM来写希望得到高手的指点,谢谢!分我会再加的。 在DLLMAIN中_Moudle.Init();(case DLL_PROCESSATTACH:)后面加入你的代码即可。不过一般不用这样吧 MENU里,点"insert"选“new ATL Object”之后选Miscellaneous在右边点dialog就加入对话框了。到时候在你的导出函数里XXXXXDlg dlg; dlg.Create.....或者DoModal()Create的时候如果对话矿没有Show的属性你还得ShowWindow一下 111222的是个办法,但ATL的对话框好象是不支持DDX/DDV,组合框的消息响应要用到ATL的CWindow系列宏,具体是什么我现在没有资料,回来给你查查.反正是BEGIN开头的,你在MSDN中查查吧. ATL对Windows窗口对象的支持比MFC要原始。它的消息影射宏BEGIN_MSG_MAP/MESSAGE_HANDLER/COMMAND_HANDLER/END_MESSAGE_HANDLER也不知MFC的好用。不过你不用手工写这些宏,右击对话框类,可以用向导加入消息影射。 to horris:不好意思,今天一整天都没空上网你说的添加消息映射是可以的,但是我如何用一个相应的成员变量来操作呢?比如像MFC中CComboBox m_combo; 一样的 用成员变量很复杂,因为ATL只有CWindow,CDialogImpl等窗口类,没有CListBox之类的象MFC那样的,要自已定义,还不如直接用API,也很简单的。不如听说现在有ATL的Windowing类,你到www.codeguru.com查一下"Windowing" to horris:谢谢啊!虽然问题还是没有解决,还是先给大家加分吧按你所说的,我去www.codeguru.com找了很久,还是没有找到,如果直接用API的话是怎么用呢?能给我一个例子吗?谢谢![email protected] everyone:谢谢大家呀! http://www.codeguru.com/atl/atlWindows.html的文章也许对你有帮助,但你可能用不着这些细节,象我上面讲的,右击对话框类,可以用向导加入消息影射。 ATL的Windowing类称为WTL,微软网站有下载,300多K。http://msdn.microsoft.com/downloads/->Visual Studio,Tools and Languages->Visual C++->Windows Template Library WTL 3.1 列表框的宽度问题 recvfrom无法收到来自不同网段的包 如何改变对话条上面的控件颜色?比如编辑框,静态文本 怎么获得一个进程创建的所有对象 基础问题,关于鼠标移动与SetCapture 如何在列表框list box中增加一项 关于ODBC数据库的筛选函数! CFileDialog中打开多个文件时,怎么顺序取得文件名 Win32 API中有能一次创建多级目录的函数吗? VC2005.Net下怎样把CString转化为const char* 进度条怎样可以没有边框 高手大哥帮忙看看关于绘图源程序(快哭了),小妹不胜感激,一定给分的
那函数应该怎么声明呢?
1.你的函数应该这样说明:
STDAPI YourFunction(...)
这是你的函数返回值是HRESULT
或者:
datatype WINAPI YourFunction(...)
datatype可为任意值。
2.在你的项目的.def文件中,在EXPORTS节中加上:
YourFunction @n
你可以看到这个文件已有几行类似的语句了,n为已有的数加一。
好的,终于有高手帮我了,谢谢!我试试先,搞定后回来加分
YourFunction @n PRIVATE
有PRIVATE关键字会使你在VC中引用这个DLL时看不到YourFunction!
谢谢啊!你还在呀!导出函数没问题了
不好意思,我还想请教一下,在这个DLL中能不能让它一加载时弹出一个对话框呢?
因为,我还想弹出一个对话框让人选择几个参数,然后再根椐这个参数再加载相应的另一个DLL。
所以我想这样用了MFC类,可能是不行吧,所以才想用COM来写
希望得到高手的指点,谢谢!分我会再加的。
之后选Miscellaneous在右边点dialog就加入对话框了。
到时候在你的导出函数里XXXXXDlg dlg;
dlg.Create.....或者DoModal()
Create的时候如果对话矿没有Show的属性你还得ShowWindow一下
不好意思,今天一整天都没空上网
你说的添加消息映射是可以的,但是我如何用一个相应的成员变量来操作呢?
比如像MFC中CComboBox m_combo; 一样的
谢谢啊!虽然问题还是没有解决,还是先给大家加分吧
按你所说的,我去www.codeguru.com找了很久,还是没有找到,如果直接用API的话是怎么用呢?
能给我一个例子吗?谢谢![email protected] everyone:
谢谢大家呀!