我遇到的是ASP.NET(C#)调用C++写的DLL的问题!
我不知道我的思路是否正确,还请给予指点:
我的目的如下:单击首页上的控件按钮,转入另一页面,并在其中显示DLL中程序的内容.
我的具体做法如下:
1,我建了两个页面,分别命名为default1.aspx(按钮控件在其上),default2.aspx(用来显示DLL的内容),
通过单击页面1上的按钮,转到页面2。这一步已经实现。
2,我建了一个类,类名为class1.cs,功能是实现用C#调用DLL。其代码如下:
public class RefCommon
    {
        [DllImport("DLL6.dll",
         EntryPoint = "mySum",
         CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
        public static extern int mySum(int a, int b);
        public static void invoke()
        {
            int i = mySum(3, 2);
            Console.WriteLine("the value is:{0}", i);
        }
    }
   此段代码我认为没有错误,因为我用建控制台的程序,用纯C#实现调用。
 3,我在第二个页面default.aspx.cs中调用此类中的函数,代码如下:
 public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        RefCommon.invoke();
       
    }
}
4,我将DLL(DLL6.DLL)放入建的这个工程的文件夹里面(注意:此处我认为有问题,因为我在控制台程序
里存放的DLL的文件夹和原有的不一样,现在的没有bin文件夹),我搜GOOGLE里面说要添加引用,步骤如下:
解决方案资源管理器>>>引用>>>添加引用>>   
  在弹出的对话框中选择COM选项卡>>浏览>>>找到.dll确定后.
  但是我在COM选项卡找不到DLL6.DLL,我不知道如何添加进去啊??
5,最后,我测试,老提示找不到DLL6。DLL,我都调两天了,还是没有解决!!请大家帮忙解决啊!

解决方案 »

  1.   

    你的VC写的DLL是标准的DLL,ASP.NET是调用不了的
    写成OCX或者COM吧
    但,总会有问题的
      

  2.   

    不行的话加上路径:  如:
    [DllImport("d:\\DLL6.dll", 
            EntryPoint = "mySum", 
            CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] 
      

  3.   

    我上面的思路难道DLL不能调用吗?就是说根本实现不了吗?(个人认为:能实现!),请指点!
      

  4.   

    C++写的DLL与C#生成的DLL不同,C#生成的是程序集,不是标准的DLL.这种DLL可以通过添加引用来加入到工程中,C++写的标准DLL(如果不是COM)需要通过DllImport这样的方式来调用。
      

  5.   

    先用C#写一个DLL,在其中调用C++的DLL,然后再在ASP.NET中调用C#写的DLL
      

  6.   

    不知道楼主的问题解决没有? 你可以兴建一个项目,里面包含有bin文件夹,然后把dll放在bin文件夹 和 system32下都拷贝一份 ,试试