C#中DLL的问题
你好 我想创建一个带有一些功能的dll。对于初学者来说,我尝试做一些简单的例子来进行测试。我正在创建一个新的类库,例如使用如下代码。 当我构建它(没有错误)并创建一个 dll 文件时,我尝试在我的其他项目中使用它,因为
[DllImport("nllibrary.dll")]
public static extern long Add(long i, long j);
我可以编译它,但是当我尝试运行该应用程序时,它给我错误“找不到入口点”。当我用depends.exe查看这个dll时,它显示dll中没有任何函数。 我的dll出了什么问题?
dll的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace nlLibrary
{
public class nlClass
{
public static long Add(long i, long j)
{
return (i + j*2);
}
}
}
Hello
I want to create a dll with some functions. For starters I'm trying to do some simple example to just test. I'm creating a new class library with for example such code as below.
When I build it (no error) and create a dll file, I try to use it in my other project by
[DllImport("nllibrary.dll")]
public static extern long Add(long i, long j);
I can compile it but when I try to run the app , it gives me error "cannot find entry point". And when I look at this dll with depends.exe it shows no functions in the dll.
What is wrong with my dll?
The code of the dll:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace nlLibrary
{
public class nlClass
{
public static long Add(long i, long j)
{
return (i + j*2);
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您不需要使用
[ DllImport]
属性。这是为了调用非托管 C/C++ 库。对于 .NET,您只需将生成的 DLL 添加到项目引用中并直接使用它:例如,如果您的 Visual Studio 解决方案中有两个项目,分别称为 Proj1(类库)和 Proj2(控制台应用程序),右键单击 Proj2 的“引用”,然后从“项目引用”选项卡中选择“Proj1”。然后,您只需直接使用该类即可:
在将正确的 using 添加到命名空间之后:
You don't need to use the
[DllImport]
attribute. That's for calling unmanaged C/C++ libraries. For .NET you simply add the generated DLL to the project references and use it directly:So for example if you have two projects in your Visual Studio solution called Proj1 (class library) and Proj2 (console application) you right click on the References of Proj2 and select Proj1 from the Project References Tab. Then you simply use the class directly:
after having added the proper using to the namespace:
另外,您无法运行 DLL。当您尝试运行 dll(调试)时,它会给您该错误消息。如果您想测试 DLL,请考虑创建 测试项目。
Also, you cannot run a DLL. When you try to run a dll (debug) it will give you that error message. If you want to test your DLL, look into creating a test project.