C#调用C++生成的DLL文件会影响C++程序的执行效率吗?
如题,在实际项目中感觉用MFC做界面即麻烦做出来的程序也不美观,于是乎决定用C#调用C++生成的DLL文件,那问题来了,C++本来偏向于底层,这样用C#来调用它,程序的执...
如题,在实际项目中感觉用MFC做界面即麻烦做出来的程序也不美观,于是乎决定用C#调用C++生成的DLL文件,那问题来了,C++本来偏向于底层,这样用C#来调用它,程序的执行效率会变低吗?请举例说明,或者从执行原理解释一下。
展开
2个回答
展开全部
你好!
c#走的是.net体系托管程序,c++的dll动态库更为直接,c#调用c++写的dll不失为提高效率的做法。但个人认为应该尽量减少调用的次数,可以在c++动态库中完成较大工作量的工作,减少互相的通信和反复数据交换,因此把工作量较大和运算时间和逻辑复杂的封装在dll内部,将结果以简单的形式返回到调用的c#中,这样可以达到两种开发方式的优势都发挥出来的效果。同时这种效率是与都用c++比较而言的,c#本身调用dll的效率应该也不是很低的,调用次数很少的情况下可以忽略这种调用对性能的影响。
c#走的是.net体系托管程序,c++的dll动态库更为直接,c#调用c++写的dll不失为提高效率的做法。但个人认为应该尽量减少调用的次数,可以在c++动态库中完成较大工作量的工作,减少互相的通信和反复数据交换,因此把工作量较大和运算时间和逻辑复杂的封装在dll内部,将结果以简单的形式返回到调用的c#中,这样可以达到两种开发方式的优势都发挥出来的效果。同时这种效率是与都用c++比较而言的,c#本身调用dll的效率应该也不是很低的,调用次数很少的情况下可以忽略这种调用对性能的影响。
更多追问追答
追问
那就是只要把复杂算法交给dll处理的同时减少调用次数就好了吗?还有调用的时候需要注意什么啊?
追答
你好,其实和在c#中调用一般的windows API函数是没什么区别的,效率不是太大的问题。只是注意调用次数和设计更为合理的实现对程序的架构更加合理。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询