在C#ASP.NET网站中使用本机C ++ DLL

时间:2014-03-24 10:47:29

标签: c# c++ asp.net dll

为了在C#ASP.NET网站中使用本机C ++ dll,我基于大量研究完成了以下工作:

(1)创建了包含构造函数的C ++本机dll:CMatrix.dll

CMatrix();
CMatrix(unsigned int m, unsigned int n);
  • 已经过测试。

(2)创建了一个C ++ / CLI Wrapper Dll:ManagedCmatrix.dll。例如,这包含以下类:

public ref class ManagedCmatrix
{
   public:
      ManagedCmatrix();
      ManagedCMatrix(const unsigned int m, const unsigned int n);
      ~ManagedcMatrix();

      ...

   private:
      CMatrix *  m_mat;
};

The first constructor is for example:

ManagedCMatrix:ManagedCMatrix()
{
    m_mat = new CMatrix();
}

again I have tested this dll by referencing it from a C# project  - it seems to work

(3)我添加了ManagedCMatrix作为对C#ASP.NET网站的引用,确保它和CMatrix.dll位于网站的Bin目录中。我确保PATH环境变量包含bin目录。 当我使用托管包装类时:

ManagedCmatrix A = new ManagedCMatrix(m,n)

抛出异常。

此异常只会在我的网站上出现'网络服务器。它不会出现在Visual Studio 2010开发Web服务器上 - 其中一切都按预期工作。

发生了什么事?

0 个答案:

没有答案