如果您的C++方法在COM对象中,那么您可以使用C#中的COM interop.有关详细介绍,请参阅CLR Inside Out:COM Interop简介.
如果这些C++方法更像传统的API调用,那么您将需要使用Platform Invoke(即PInvoke).这需要在C#中为非托管(C++函数)创建托管原型.一个好的起点是Platform Invoke Tutorial.
就性能考虑而言,通常不会有太多担心.从C#调用可能比直接从C++调用要慢一些,这在很大程度上是由于封送数据.除非您调用的代码处于关键循环中,否则您不会注意到任何差异.
这实际上取决于这些本机功能的作用.您在非托管和托管世界之间共享数据的次数越多,流程就越难.如果没有关于您的特定功能的更多信息,很难说您可能遇到问题的位置.
| 归档时间: |
|
| 查看次数: |
859 次 |
| 最近记录: |