C#调用vc6生成的dll 这里讲了调用Comhttp://www.csdn.net/Develop/read_article.asp?id=27249 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 项目-〉引用-〉com找到你的dll 注意,你的DLL并不是COM,它只是普通的Win32 DLL,所以,调用规则有一定的变化:你要调用int fnNetdll22(),需要将你的DLL拷贝到你的应用程序目录下,或者在DLLImport中给出绝对路径。 用dependency工具看看你的dll,看看函数名称是否正确在“fnNetdll22”的前面可能有其他字符的 我也遇到过同样的问题 这样解决的[DllImport("d:\\mydll.dll",EntryPoint="MyFunction")]public static extern int MyFun(int i);你把你的改为这样看看[DllImport("netdll2.dll",EntryPoint="fnNetdll2")]public static extern int fnNetdll22();还有确定你的DLL文件的路径程序搜索DLL文件的顺序:包含EXE文件的目录进程的当前工作目录WINDOWS系统目录WINDOWS目录列在PATH环境变量中的一系列目录 还有 由于你是引入非托管函数你要把它声明为摸个类的静态外部成员如public class DLL { [DllImport("d:\\mydll.dll",EntryPoint="MyFunction")] public static extern int MyFun(int i); } private void Form1_Load(object sender, System.EventArgs e) { DLL.MyFun(1); } 你调用的是一个用c++写的class,用一般的方法没有用的,你在试图初始化这个类,必须在写这个class的时候考虑用c程序怎么调,然后,在c#中[DllImport...]的方式,初始化这个class 多谢各位的帮助。有大家的提示,问题我解决了,是因为我的导出函数名前后有乱码(该死的MS,没事给我加这些乱码干吗!),所以#报找不到入口点了,解决的办法是加上EntryPoint把乱码赋给它,或者在dll编写的时候,加上def文件,把导出函数名改回来。 求大神!webservice的客户端程序如何打包 求助啊。。 如何更新数据 商用程序应具备一些什么样的特点? 設置DataGridView選中行的亮度 有些英文版软件进行汉化时,是怎么做的呀(除了英语) 大家帮我分析一下 各位大虾,小弟写最简单的代码,出了小小的问题,请高手赐教,看正文。。。 头大了,请问如何遍历数组中的每一项,并且做replace操作 短讯接口问题 请问c#和vB 什么是Default Button? 菜鸟求助!为什么会出这样的错
找到你的dll
你要调用int fnNetdll22(),需要将你的DLL拷贝到你的应用程序目录下,或者在DLLImport中给出绝对路径。
在“fnNetdll22”的前面可能有其他字符的
[DllImport("d:\\mydll.dll",EntryPoint="MyFunction")]
public static extern int MyFun(int i);
你把你的改为这样看看
[DllImport("netdll2.dll",EntryPoint="fnNetdll2")]
public static extern int fnNetdll22();
还有确定你的DLL文件的路径
程序搜索DLL文件的顺序:
包含EXE文件的目录
进程的当前工作目录
WINDOWS系统目录
WINDOWS目录
列在PATH环境变量中的一系列目录
你要把它声明为摸个类的静态外部成员
如
public class DLL
{
[DllImport("d:\\mydll.dll",EntryPoint="MyFunction")]
public static extern int MyFun(int i);
} private void Form1_Load(object sender, System.EventArgs e)
{
DLL.MyFun(1);
}