你好!
c#走的是.net体系托管程序,c++的dll动态库更为直接,c#调用c++写的dll不失为提高效率的做法。但个人认为应该尽量减少调用的次数,可以在c++动态库中完成较大工作量的工作,减少互相的通信和反复数据交换,因此把工作量较大和运算时间和逻辑复杂的封装在dll内部,将结果以简单的形式返回到调用的c#中,这样可以达到两种开发方式的优势都发挥出来的效果。同时这种效率是与都用c++比较而言的,c#本身调用dll的效率应该也不是很低的,调用次数很少的情况下可以忽略这种调用对性能的影响。
C#调用C++生成的DLL文件不会影响C++程序的执行效率。
细节如下:
DLL执行的时候,已经是C++编译后的目标语言,和C#没有关系;
C#调用的时候需要二者传递一下参数,传递完成后就是C++程序的效率在执行了。