社区
C#
帖子详情
[50分]C#调用dll文件中的函数的问题
ApiToSharp
2007-11-14 08:04:48
dll中的函数,是不是除了api以外,还有com?
例如shell.dll中的filerun()函数(无参数)
我用调用api函数的格式写,编译没问题,但运行时出现异常,说格式不正确
该怎么调用呢?(麻烦把命名空间,声明等都写出来)
注:js中是这样的new ActiveXObject("shell.application").filerun()
...全文
413
11
打赏
收藏
[50分]C#调用dll文件中的函数的问题
dll中的函数,是不是除了api以外,还有com? 例如shell.dll中的filerun()函数(无参数) 我用调用api函数的格式写,编译没问题,但运行时出现异常,说格式不正确 该怎么调用呢?(麻烦把命名空间,声明等都写出来) 注:js中是这样的new ActiveXObject("shell.application").filerun()
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
icemangd
2008-05-07
打赏
举报
回复
我也遇到了一个 这方面的问题 就是 用 web service 调用 dll 请问 这方面的有没有说明 或者谁知道怎么用!!
曲滨_銘龘鶽
2007-11-22
打赏
举报
回复
首先这两种方法我都测试过了、应该不会出问题。
第一种方法可行,不过有个问题:
我用调用api的方式,
使用shell32.dll提示找不到名为FileRun的入口点
使用shell.dll提示格式不正确
这说明FileRun函数存在于shell.dll中,而不是shell32.dll
这里为什么添加shell32.dll的引用?
答:win32 系统都是用 shell32.dll 你的操作时调用运行对话框,shell.dll win98 后就被废弃了
而且你调用的是com函数,当然是要引用com dll 的,因为你题中给的调用方式根本就是调用的com 而不是 api 方式
而且 FileRun 是一个 windows com api,windows api 不是叫这个名字是一个隐藏api 61api 号不知道现在变了没
===============================
第二种方法
object oShell = Activator.CreateInstance(tShell)处发生异常(值不能为空)
答:
//通过 ProgID 取得 com 对象类型
Type tShell =Type.GetTypeFromProgID( "Shell.Application ");
//实列对象
object oShell = Activator.CreateInstance(tShell);
如果 tShell 为空证明你的系统的 com 注册表有问题(番茄花园版本有这问题),这个对象在任何系统都应该存在
我很多年前用过好多次了、
==================================================================================
还有,第一种光是一个exe无法运行,必须要拷贝dll
可不可以把dll嵌入到exe
至少形式上只有一个exe就可以执行
或者不嵌入也行,直接引用%windir%\system32中的shell32.dll而不是要重新生成一个dll
太感谢你了,麻烦把我说的各种情况都解释一下
再次致谢
答:那个dll就是一个桥负责 com 到 .net ,的转换本身没有任何意义、如果不想带dll,还是用第二方式比较好而且我认为第二种出错、第一种也不好使。
如果坠入那个引用过来的dll 可以放到资源里,如果是vs2005很方便,在main函数里写出去就好用了
============================================================================
ApiToSharp
2007-11-16
打赏
举报
回复
麻烦哪些高人回答一下我在3,4,5楼提出的问题,谢谢了
wdzr_826
2007-11-15
打赏
举报
回复
1楼说的全,直接引用,或是反射
ptpa
2007-11-15
打赏
举报
回复
xuele
chxljtt
2007-11-15
打赏
举报
回复
我想这个应该讲的很详细!
http://blog.csdn.net/pansiom/archive/2006/01/01/568096.aspx
ApiToSharp
2007-11-15
打赏
举报
回复
或者不嵌入也行,直接引用%windir%\system32中的shell32.dll而不是要重新生成一个dll
太感谢你了,麻烦把我说的各种情况都解释一下
再次致谢
ApiToSharp
2007-11-15
打赏
举报
回复
还有,第一种光是一个exe无法运行,必须要拷贝dll
可不可以把dll嵌入到exe
至少形式上只有一个exe就可以执行
ApiToSharp
2007-11-15
打赏
举报
回复
谢谢
第一种方法可行,不过有个问题:
我用调用api的方式,
使用shell32.dll提示找不到名为FileRun的入口点
使用shell.dll提示格式不正确
这说明FileRun函数存在于shell.dll中,而不是shell32.dll
这里为什么添加shell32.dll的引用?
第二种方法
object oShell = Activator.CreateInstance(tShell)处发生异常(值不能为空)
曲滨_銘龘鶽
2007-11-14
打赏
举报
回复
不要忘记
using System.Reflection;
曲滨_銘龘鶽
2007-11-14
打赏
举报
回复
============= 1,直接添加引用 %windir%\system32\Shell32.dll ========
写代码
Shell32.ShellClass sc = new Shell32.ShellClass();
sc.FileRun();
============== 2,不用添加任何引用直接用反射 =========================
//通过 ProgID 取得 com 对象类型
Type tShell =Type.GetTypeFromProgID("Shell.Application");
//实列对象
object oShell = Activator.CreateInstance(tShell);
//反射调用
tShell.InvokeMember("FileRun"
, BindingFlags.InvokeMethod | BindingFlags.Default
, null
, oShell
, null //如果有参数在这里 new object[]{参数一,参数二,参数三,....}
);
//释放对象
System.Runtime.InteropServices.Marshal.ReleaseComObject(oShell);
C#
调用
Matlab生成的
dll
文件
进行直接绘图操作示例
本文介绍如何在
C#
中
调用
Matlab生成的
DLL
文件
进行绘图,详细步骤包括Matlab
函数
的编写、
DLL
文件
的生成及
C#
代码的编写。通过实例演示了如何将Matlab生成的图像嵌入到
C#
应用程序
中
。
[
C#
]
调用
MATLAB(.Net类库) (一)
调用
Matlab代码/
函数
本文详细介绍了如何在
C#
中
调用
MATLAB代码,包括MATLAB工具包安装、编写和封装MATLAB程序为
dll
,以及在VisualStudio2013
中
的配置、编程步骤。关键步骤包括设置目标平台为x64,添加MWArray.
dll
引用,并成功
调用
MATLAB的加法
函数
和plot功能。
如何在Electron
中
调用
Dll
本文介绍在Electron
中
调用
Dll
的方法。因JS无法完成硬件接口调试,故将C++或
C#
功能打包成
Dll
,通过Node
调用
。阐述了
Dll
类型,介绍了用ffi
调用
C++生成的
Dll
、用edge
调用
C#
生成的
Dll
的方法,还总结了
调用
过程
中
可能遇到的
问题
及解决办法。
C++封装
函数
DLL
C++
中
与
C#
中
调用
该
函数
DLL
这篇博客详细介绍了如何在C++
中
创建
DLL
函数
,并在
C#
应用程序
中
进行
调用
的过程。步骤包括创建
DLL
工程,声明并定义
函数
,生成X64 Release版本,然后在C++控制台项目
中
调用
DLL
,最后在
C#
项目
中
配置平台为X64并引用
DLL
。
Delphi
调用
C#
DLL
方法
本文介绍了如何在
C#
中
创建一个COM可见的类库,以便于Delphi进行
调用
。
C#
端需设置项目属性使程序集COM可见,并通过regasm注册
DLL
。在Delphi端,通过导入生成的TLB
文件
来引用接口,实现跨语言的
DLL
调用
。
C#
111,132
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章