ACE与C++/CLI集成使用时遇到的问题及解决方法

来源:互联网 发布:jq 判断数组是否为空 编辑:程序博客网 时间:2024/05/23 13:22

最近在用ACE做一个Windows下的小工具,首先在Console界面下实现了基本功能,然后再做一个Windows界面出来。

首先用的是Visual C++ Express的C++/CLI,但感觉这个不太“正宗”,是托管的代码,所以尝试了一下Qt,学习了一下“信号”和“槽”的概念,界面虽然容易做,代码也容易集成进去,但网络却连接不上,所以又转回了C++/CLI。

但是C++/CLI也会遇到很多问题,首先是编译和链接的问题,还有代码托管的问题,把托管的代码和非托管的代码放在一起,还需要做一些工作。基本上参考“Using ACE with C++ CLI by Espen Harlinn”,但即使下载她的源代码还是不能编译,遇到main函数的链接问题,后来又找到一个解决方案,就是重命名程序的入口函数,并且在链接的时候指定新的入口函数。最终所有的问题终于都解决了。

通过这个小工具的设计及实现,体会到技术的选型对项目是很重要的,效率、实现的可行性都需要提前考虑,不然就得重头再来或者走很多弯路。针对这个工具,ACE是练习的重点,所以是不可替代的,否则不论选Qt或者C++/CLI都比较清晰,不用把托管和非托管的代码搞在一起,而且最终可能还需要依赖ACE.dll这个动态链接库。