读书人

关于DLL引用的有关问题

发布时间: 2011-12-26 23:09:59 作者: rapoo

关于DLL引用的问题
想了解一下有关dll方面的知识。写了一段程序,编译成dll,引用后报错:无法在DLL中找到名SampleMethod(int i)为的入口点。其中SampleMethod(int i)为我程序中的一个方法。这是怎么回事?

[解决办法]
有没有将它放入自己定义的类中`~?
[解决办法]
本地dll的话,可能你没有正确导出SampleMethod(int i)。

托管dll的话,可能是可见范围问题(public,private)。
[解决办法]
无法在DLL中找到名SampleMethod(int i)为的入口点
--------------------------------------------
估计没正确引入
[解决办法]
使用DLL imPORT

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://feiyun0112.cnblogs.com/
[解决办法]
路过

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://feiyun0112.cnblogs.com/
[解决办法]
从托管应用程序调用非托管代码
当调用用户定义的 DLL 中所包含的函数时,有必要将 extern "C" 添加在 DLL 函数声明之前,如下所示:
The function declaration in SampleDLL.h file
extern "C" SAMPLEDLL_API int fnSampleDLL(void);

详见http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vccore/html/vcwlksysimportattributetutorial.asp
[解决办法]
.net中的class默认为internal,

你将class改为public再试吧
[解决办法]
无法找到类说明dll没正确添加引用
无法在DLL中找到名SampleMethod(int i)为的入口点说明没有访问此方法的权限,private?/protect??
[解决办法]
class 私有

public SampleMethod(int i)


[解决办法]
C#调用C++编写的COM DLL
http://www.cnblogs.com/tallman/archive/2007/04/27/729048.html

C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)
[url=http://www.cppblog.com/kerlw/archive/2007/06/27/27061.html ]http://www.cppblog.com/kerlw/archive/2007/06/27/27061.html [/url]
[解决办法]
你怎么引用的!
[解决办法]
直接右键添加引用引用这个DLL。
在程序里:

C# code
Test test=new Test(); int aaa=   test.SampleMethod(1);
[解决办法]
C#的DLL和windows的标准dll不是一样的东西,不能直接这么用。
[解决办法]
public class Test

[解决办法]
dll调用有问题
[解决办法]
右击解决方案 添加项目引用
[解决办法]
你写的这个DLL也是C#环境下编译成的,不是C/C++环境下编译成的,没有必要用下面的方法.
[DllImport("Add.dll",EntryPoint="SampleMethod")]
public static extern int SampleMethod(int i);

用下面的方法就可以了:
直接右键添加引用引用这个DLL。
using ClassLibrary1;
namespace ConsoleApplication1
{
class Program
{
static int Main(string[] args)
{
Test test = new Test();
return test.SampleMethod(5);


}
}
}

[解决办法]
up
[解决办法]
定义的调用顺序有问题,如 stdcall ,safecall等,楼主调试看看
[解决办法]

探讨
引用:
C#的DLL和windows的标准dll不是一样的东西,不能直接这么用。

对!!!

[解决办法]
这种问题
第一,没有添加引用
第二,如果你是默认建的,要修改class为public,方法也是public,注意是不是修改好了

[解决办法]
如果是控制台,你要注意把dll放在了微软默认的路径
[解决办法]
引用后可直接使用

如果class编写没有问题的话

读书人网 >C#

热点推荐