当前位置:编程学习 > C#/ASP.NET >>

C# 调用动态链接库问题

我在记事本中写了
using System;
namespace FLDLL
{
    public class Showfile
    {
        public string message()
        {
            return "Welcome using dll files for vs c# Programming";
        }
    }
}
然后把他存为DLL.cs 并把它放在了csc.exe相同的目录下,然后运行 csc /t:library /out:mydll.dll DLL.cs 在此目录下生成了mydll.dll文件
然后我在visual studio 中新建了一个项目,并在项目的引用里添加了mydll.dll 在Form1中添加了一个按钮 下面是program.cs和form1.cs

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using FLDLL;

namespace WindowsApplication4
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using FLDLL;
namespace WindowsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void 易做图Button1_Click(object sender, EventArgs e)
        {
            Showfile s = new Showfile();
            string sr = s.message();
            MessageBox.Show(sr);
        }
    }
}
运行调试出现错误:
未处理 System.IO.FileNotFoundException
  Message="未能加载文件或程序集“mydll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。"
  请大家帮我看看,谢谢! --------------------编程问答-------------------- 帮顶下吧,感觉好像是每问题啊!运行错误?不是编译错误? --------------------编程问答-------------------- 楼主不厚道,问个问题才给5分,
默认的还有20分呢。。。
--------------------编程问答-------------------- 呵呵,不好意思阿,我因为下载资料花了不少分,所以现在没多少分拉,我的问题怎么还没人解决呢?我弄了好久还是没整明白
--------------------编程问答-------------------- 代码无误,请检查所引用的dll是否正确。 --------------------编程问答-------------------- 我把动态链接库放在应用程序目录下就可以了,但是为什么不能任意放在一个目录里呢
--------------------编程问答-------------------- 要不你就放在win32目录里,呵呵。 --------------------编程问答-------------------- 这个问题是 你的程序集的名字 和  你的命名空间 的名字 不统一造成的。
改为一致。 --------------------编程问答-------------------- 还要注意,在.NET里 .dll文件 和 在vc++里的.dll文件 
是完全不同的东西,不要搞混。
.net中是程序集,在VC中是动态链接库。 --------------------编程问答-------------------- 我改为一致放在其他目录还是不行,我查资料看C#中对于dll的搜索路径有固定的几个顺序,第一个就是应用程序的路径,  不知道怎么能够任意更改指定他的搜索路径
--------------------编程问答-------------------- 可以改用反射来动态调用,只不过效率要差很多
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,