.NET2005中:C#与C++的一个多工程解决方案中,为什么C#使用C++类时全成了struct
我的解决方案有两个工程,一个是C#的工程,一个是C++的类工程;
首先我将C++工程引入C#工程,然后在生成C++工程里定义的类,但是C++里定义的类成了struct,不能使用方法了;但在对象浏览器里可以查到C++里的类,而且方法也都是public的;
是什么原因呢?
以下是C++工程里的一个.h文件,请大家帮我看看什么原因?
#ifndef GMathH
#define GMathH
#include <iostream>
#include <string>
#include <list>
#include <exception>
#include <cmath>
//---------------------------------------
using namespace std;
public class TCurveNH
{
public:
//问题:进行拟合前是否要将数据点按x的值进行排序?
TCurveNH(const double* x,const double* y,const int n,const int m):x(x),y(y),n(n),m(m){};
//取得拟合结果(返回结果多项式)
TPolynomial GetResult();
private:
//原始数据(不允许修改)
const double* x;
const double* y;
const int n;
const int m;
//计算参数d
double CalD(const TPolynomial& p);
//计算参数a
double CalA(const double d,const TPolynomial& p);
//计算参数b
double CalB(const double d0,const double d1)const { return d1/d0;}
//计算参数c
double CalC(const double d,const TPolynomial& p);
//多项式迭代
//ah为前一项的多项式
//bh为前二项的多项式
//ch为当前要求的多项式
//result为最终结果多项式
TPolynomial NextNHPolynomial(const TPolynomial& ah,const TPolynomial& bh,TPolynomial& result);
};
#endif
------解决方案--------------------public ref class TCurveNH
------解决方案--------------------非托管类,C#几乎无法使用
------解决方案--------------------寒.... c#和c++ 混着搞什么
------解决方案--------------------c++ 做成com
C#通过添加因用来调用
or
c++ 做成dll
c# 通过dllimport 引入调用