C#中调用vc写的dll中的类(非Com),怎么办?急。。。 win32 标准dll请用API调用方式[DllImport()] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在项目里 “引用”添加你的dll,会自动生成一个包装下面就像.net里,你可以new一个对象 除非这个dll是com组件,否则只能按调用api的方式的调用。[DllImport(""gdi32.dll"", EntryPoint=""AbortDoc"")]public static extern int AbortDoc ( int hdc); to Tomgus(小桥流水) :添加引用会提示不是合法的com文件的!to sunyou(砂子):这种方法只能调用一个具体的方法呀,怎么实例化一个类呢? 你的这个dll中的类对dotnet来说什么都不是!!!因为dot net并不明白你这个dll中数据到底是什么,dll仅仅是个二进制文件的形式,com因为是个标准,所以支持com组件的系统(VC/VS.Net)就明白com组件中的数据类型,包括类,所以vs.net能自动包装你要引用的com组件。如果需要的话你自己用c#包装一下这个类。 to sunyou(砂子) : 怎么包装?我根本就没有这个dll的源码! 呜呜,楼主和我碰见的问题一样.引用时,不合法;用[DllImport]编译通过了,但是运行后会提示找不到Entry piont--"Unable to find an entry point named DllMain in DLL test.dll".我想能不能在C#中声明同dll中类一样结构的类,再去调用它的相应的方法。另,如果我能得到这个vc写的dll的源码,如何用C#包装,向各位高手请教。 那就应该是用C++写的DLL的格式不规范! 如果你能得到源码,可以把它改成ACTIVATEX控件,重新编译,然后引用。如果没有源码,而且是C++的成员函数,那没有任何方法可以调用。 放弃了这种做法,各位如有什么好办法,请通知我,谢谢,[email protected],马上结帖! 请问SLN在那里去了? 关于datagridview如何更新的问题,执行后有问题,高手解答!!!! quartz.net问题 C#带符号的十六进制整型转换到十进制如何写代码 发布winform的程序的时候,用bin\Debug目录里的程序吗 C# 委托及其赋值问题(新手提问) 散100分,看看我这水平在上海能拿多少? 如何在子窗体的调用之后返回给主窗体一个信息? 如何获得Reporting Server 2005上的报表及目录列表? 菜鸟基本问题?DataGrid 求解:在C#WinForm退出事件中的遇到的一个小问题 菜鸟问题,请进来相助
下面就像.net里,你可以new一个对象
public static extern int AbortDoc (
int hdc
);
因为dot net并不明白你这个dll中数据到底是什么,dll仅仅是个二进制文件的形式,com因为是个标准,所以支持com组件的系统(VC/VS.Net)就明白com组件中的数据类型,包括类,所以vs.net能自动包装你要引用的com组件。如果需要的话你自己用c#包装一下这个类。
引用时,不合法;
用[DllImport]编译通过了,但是运行后会提示找不到Entry piont--"Unable to find an entry point named DllMain in DLL test.dll".
我想能不能在C#中声明同dll中类一样结构的类,再去调用它的相应的方法。
另,如果我能得到这个vc写的dll的源码,如何用C#包装,向各位高手请教。