首页新闻找找看学习计划

在一个Solution中检查平台版本并 动态引入 32位 或 64位的DLL

0
悬赏园豆:200 [待解决问题]

我在使用 ImageMagick 做图像处理时,ImageMagick 分为 32位 和64位 两个版本的dll 。

自己的项目也分为两个版本(两个Solution),其中代码相同,只是引用ImageMagick 组件dll的版本不相同,每次需要编译两次,生成两个不同平台版本的程序。

现在我想把两个版本的dll,合并在同一个解决方案中, 在程序运行的时候,判断系统平台版本,动态引入X64 或X86 对应的ImageMagick 组件dll,来达将32位64位两份代码合二为一的目的。

这个问题该如何解决?第一次在博客园上问问题,不知道有没有人看。

键盘上的牛仔的主页 键盘上的牛仔 | 初学一级 | 园豆:30
提问于:2015-08-10 15:10
< >
分享
所有回答(3)
0

设置个条件编译符,定义下编译的目标平台就成了。

具体的设置在项目属性中的Build中的Conditional compilation中配置

具体的例子可以参考这里的代码,用的愉快。

https://msdn.microsoft.com/zh-cn/library/aa691095

````` | 园豆:14268 (专家六级) | 2015-08-10 15:54
0

安装程序的时候,把 64 位版本的 ImageMagick 拷贝到 System32 目录下,把 32 位版本的 ImageMagick 拷贝到 SysWOW64 目录下就可以了。

或者用 LoadLibrary 按需加载,然后用 Function Pointer 调用导出的方法。

Launcher | 园豆:45030 (高人七级) | 2015-08-10 16:06
0

最简单的方法是采用try{}catch{}方法 try里面32位,catch里面用64位

唯我独萌 | 园豆:532 (小虾三级) | 2015-08-10 17:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册