用以下代码生成DLL:
using System;namespace NumberAdd
{
public class Class1
{
private float fNo1;
public Class1()
{}
public float returnNum(float a,float b)
{
this.fNo1 = a + b;
return fNo1;
}
}
}
//....命名空间
using System.Runtime.InteropServices ;
//......
[DllImport("NumberAdd.dll")]
public static extern float returnNum(float a,float b) ;然后:
private void button1_Click(object sender, System.EventArgs e)
{
float aa = float.Parse("234.32");
float bb = float.Parse("34.32");
try
{
float temp = returnNum(aa,bb);
this.textBox1.Text = temp.ToString();
}
catch(Exception ed)
{
MessageBox.Show(ed.ToString());
}
}结果: 总是报一个异常,请教名位大虾, 等待ing....

解决方案 »

  1.   

    怎么这么复杂,直接“添加引用”-“浏览”,找到那个DLL,确定。然后再using NumberAdd就可以了!
      

  2.   

    .net中生成的.dll文件,不能这样调用!
      

  3.   

    NumberAdd hh = NumberAdd();
      

  4.   

    (自己回复) 我是用C#生成的.dll 本来不用生成直接就可以用,我的目的是学习dll
    等待高手指点 ing...
      

  5.   

    这个dll和以前用c++或者Vb写出来的DLL是不同的。
    以前的DLL需要一个128位的GUID。每个dll在注册表都有相关的纪录的现在.net的dll没有了这些,然后通过dllimport的话,可能会加载失败的
    =========================================================================
    个人针对你的问题提出的看法
      

  6.   

    没错,就是这样子
    像C++,VB等写出来的DLL,这可以这样子访问吗?