C# C中的dll问题

C# C中的dll问题,c#,dll,dllimport,C#,Dll,Dllimport,你好 我想用一些函数创建一个dll。首先,我试着做一些简单的例子来测试。我正在创建一个新的类库,例如下面的代码。 当我构建它没有错误并创建一个dll文件时,我尝试在我的另一个项目中使用它 [DllImport("nllibrary.dll")] public static extern long Add(long i, long j); 我可以编译它,但当我尝试运行应用程序时,它会给我一个找不到入口点的错误。当我用depends.exe查看这个dll时,它显示dll中没有函数。 我的dl

你好 我想用一些函数创建一个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);
        }           
    }      
} 
您不需要使用该属性。这是用于调用非托管C/C++库的。对于.NET,只需将生成的DLL添加到项目引用并直接使用:

long result = nlClass.Add(1, 3);
因此,例如,如果在Visual Studio解决方案中有两个名为Proj1类库和Proj2控制台应用程序的项目,请右键单击Proj2的引用,并从“项目引用”选项卡中选择Proj1。然后直接使用该类:

long result = nlClass.Add(1, 3);
将正确的USE添加到命名空间后:

using nlLibrary;
您不需要使用该属性。这是用于调用非托管C/C++库的。对于.NET,只需将生成的DLL添加到项目引用并直接使用:

long result = nlClass.Add(1, 3);
因此,例如,如果在Visual Studio解决方案中有两个名为Proj1类库和Proj2控制台应用程序的项目,请右键单击Proj2的引用,并从“项目引用”选项卡中选择Proj1。然后直接使用该类:

long result = nlClass.Add(1, 3);
将正确的USE添加到命名空间后:

using nlLibrary;

此外,您不能运行DLL。当您尝试运行dll调试时,它将向您发送该错误消息。如果您想测试DLL,请查看创建一个。另外,您不能运行DLL。当您尝试运行dll调试时,它将向您发送该错误消息。如果你想测试你的DLL,可以考虑创建一个。

你不需要使用DllImport来实现这个.Console应用程序吗?您是否有一个入口点,如定义的Main,开箱即用,您应该看到类似static int-Mainstring[]args的东西作为可以更改的入口点,您是调用nlLibrary.nlClass.Add还是…?也是,你不需要DLL导入,只需要对你创建的程序集进行引用。你不需要使用DllImport。控制台应用程序?你是否有一个入口点,如定义的Main,开箱即用,你应该看到像static int-Mainstring[]args这样的入口点可以更改,你是调用nlLibrary.nlClass.Add那里还是…?是的,你不需要DLL导入,只是对你创建的程序集的引用,我不运行DLL。我已将其添加到其他项目windows窗体。@罗德罗:您必须确保窗体项目是默认项目。右键单击它并选择“设置为启动项目”。你的DLL现在是你的启动项目。我不运行DLL。我已将其添加到其他项目windows窗体。@罗德罗:您必须确保窗体项目是默认项目。右键单击它并选择“设置为启动项目”。DLL现在是您的启动项目。