如何在WTL和MFC中使用duilib及如何静态使用duilib库

如何在WTL和MFC中使用duilib及如何静态使用duilib库,第1张

不可以

在使用DuiLib的时候,一种是使用他的DLL库(或者lib库)的方式,一种是直接使用源代码。我偏向于使用后者,这样在发布出去的程序中,就会尽量少一些库文件的烦恼。我们下载的DuiLib的源码中,包括测试程序都是使用dll的形式。

使用源代码时,直接把下载的DuiLib里的源码文件添加到自己的工程中:

将红框里的文件夹和文件导入到自己的工程中,如下:

但在编译的时候,会有几个错误:

(1) stb_image.c XUnzio.cpp这两个文件的预编译头问题。取消使用预编译文件即可。

(2) error C2371: “IDispatchEx”: 重定义 问题。

UIFlash.h文件中

#import "..\Utils/Flash11.tlb" raw_interfaces_only, named_guids

改为:

#import "..\Utils/Flash11.tlb" raw_interfaces_only, named_guids, rename("IDispatchEx","IMyDispatchEx")

可以。你做好环境配置就行了。

首先,你可以在google代码托管上下载到最新的duilib源码,地址是这里 http://code.google.com/p/duilib/downloads/list 可以看见有2个项目,有一个是duilib的源码,还有一个就是duilib配套的UIdesigner,可以用它进行可视化的UI设计,自动生成xml文件。(但是我的机器上的UIdesigner不知道为什么每次打开xml文件时就完全没有反应,有时候还会发生程序未响应的情况)然后网上随意可以下载到《duilib简单文档》,那个用来作为第一次运行duilib的程序相当不错~

注意:以下全部为Debug版本的配置方法。

首先,你应该知道新建的工程是一个“win32项目”,之后选择一个“空工程”。新建一个cpp文件将《duilib简单文档》中得代码拷贝进去之后,你可以试着去编译一下。提示:“无法打开包括文件:“..\DuiLib\UIlib.h”: No such file or directory”,那么我们就添加UIlib.h。将之前下载的duilib源码中的DuiLib文件夹拷贝至项目文件夹(即cpp文件的上一层目录,与Debug文件夹同级的目录,只不过现在还没有生成Debug文件夹)。现在再来编译一下,已经不报错了!好的。那么试着运行一下,出现一个错误“无法打开文件“..\bin\DuiLib_ud.lib”(也有可能是DuiLib_d.lib等,由预编译决定,没关系),那么我们再去添加。在项目目录下(与Debug文件夹同级),新建一个bin文件夹。将DuiLib_ud.lib等4个lib文件拷贝进去(需要手动生成,不会手动生成的可以下载,在CSDN上搜索“duilib动态链接库及导入库”可以下载到)。之后,再将4个dll文件拷贝进Debug文件夹,再运行。出现一个异常!进行单步调试可以发现,pRoot变量始终是0,因为没有发现xml文件!最后一步,在Debug文件夹中新建一个xml文件,将《duilib简单文档》中的xml例子拷贝进去。运行。现在就已经可以看到窗口了。大功告成。

最后说几个注意点:

1.lib需要放在bin文件夹下,或者通过pragma comment(lib, "..\\bin\\DuiLib_ud.lib")的第二个参数指定路径。

2.dll需要放在Debug文件夹下。

3.xml文件需要放在Debug文件夹下。

4.最重要的是4个dll和4个lib文件,lib文件可以手动生成,不会的也可以去下载。在CSDN上搜索“duilib动态链接库及导入库”可以下载到。下载地址:http://download.csdn.net/download/gjt19910817/3940248


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11787533.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存