如果是简单的dll,没有导出为各种类的,仅导出了一些简单的函数。那么可以通过 Dependency walker 或者其他工具来检查dll的导出表,可以看到导出函数的函数名。通过名字猜测其意义。
但函数的参数类型,个数,无法看到。
如果有一定水平,可通过反汇编,检查其堆栈顶移动的字节数猜测其参数个数。简单分析也不难得出其含义。
char 类型当 short 传.
char* 类型, 如果仅用作入参, 设置为 Type.String, 传入 bytes[] 即可.
如果用作出参, 则要用到 指针: Pointer, 譬如:
int buffer;
setParameter(2, Type.INT, buffer);
invoke 完毕后
Pointer headBuff = Pointer.createPointerToNativeMemory(buffer, 大小);
byte[] bytes = headBuffer.getMemory()
把别人软件的DLL拿过来用,是不是侵权?
1.首先Dll是共享库文件,既然是共享,就不存在使用侵权的问题,例如,在windows操作系统中,存在的dll库文件都是windows版权所有的,但是在windows操作系统中运行的程序,或多或少的都会使用到他们,难道每个程序的作者都要向windows缴纳使用费吗?
2.再次说明,调用,使用,内陷,捆绑,封装dll都不涉及版权侵权问题。
3.无授权,使用第三方程序的组成部分(组件)(非解码库)是有侵权的嫌疑,但像Foxit Reader这样的免费软件,ADOBE怎么好去告。从声誉的角度上看,这也不好。
4.绿霸事件不只是侵权,而且是严重的损害了中华人民共和国公民的合法权益,具有严重的社会危害性,已经达到犯罪的标准。(抱歉,我有点过激)
现在引用一下:
绿霸事件七宗罪
1,中国政府各相关部门,在缺乏合法的程序进行认证的情况下,花巨款进
行政府黑箱采购,是可耻的渎职行为,是对国民税金的浪费。
2,中国政府各相关部门,强行要求国内国外计算机厂商绑定安装垃圾过滤软件,一如既往地盗用“打黄扫非”的口号,行言论与思想交流禁锢的事实,妄图对中国网民进行蒙蔽,欺骗和操控摆布,是可恶的纳粹行为。
3,绿霸开发商们,将粗制滥造的软件推向市场,是对消费者的极端不尊重。
4,绿霸开发商们,将存有严重安全漏洞的软件,通过黑箱操作,试图强行污染侵害所有网民,是可恨的极端不负责任行为。
5,绿霸开发商们,做为一家商业公司,公然盗用其他公司受产权保护的源码,是极端龌龊的违法行为。
6,绿霸开发商们,盗用他人源码也就算了,技术还一塌糊涂,竟然蠢到要让软件去被盗用公司软件网站更新数据,是极端可笑的愚昧行为。
7,中国政府各相关部门,将如此可笑的公司可恶的软件用可耻的方式推向全球,沦为全世界笑柄,让千万中国电信科技人员颜面丧尽。原本以为中国科技界别的啥都可以不行,但是过滤技术必定天下第一,没想到我们仅有的骄傲也被逼裸奔,实在是让人无地自容。
注意:其中提到“其他公司受产权保护的源码”这是很准确的说法。
VS2010做的东西发给别人,都提示缺少MSVCP100D.dll文件,怎么破
msvcp100d.dll是电脑中一个必不可缺的dll文件,许多的游戏或者软件运行都需要它的支持,如果没有这个文件可能会造成一些游戏或者软件运行不了。假如您的系统提示“丢失msvcp100d.dll” 或者“msvcp100d.dll错误”等信息,请不用担心,您可以下载该文件进行安装修复一下即可。
使用说明
1、解压下载的msvcp100d.dll文件http://www.ddooo.com/softdown/93169.htm。
2、复制文件“msvcp100d.dll”到系统目录下。
3、系统目录一般为:C:\Windows\System32 64位系统为C:\Windows\SysWOW64
4、最后点击开始菜单-->运行-->输入regsvr32 msvcp100d.dll后,回车即可解决错误提示。
易语言如何调用别人的DLL
通常你只能调用自己写的,因为你知道你自己写这个dll他的用法是咋样的。
如果是别人写的那么他就必须要声明所需调用那些函数进行公开,必要时他还需要写出一份关于调用的例子,别人写的dll大多都是c++的,例子大多就是c+的。dll在win上大多语言是通用的
先跟你说说,你为什么要调用别人的dll,你调用总得有一个目的,别人写出来是为了方便整理一些数据,他是可以完全写进单个程序里的,或者程序员是要给别人提供的,而且那是别人的东西总的来说他不告诉你怎么用你是不可能知道怎样调用的。(对于qq的dll是腾讯公司他们自己的东西,他告不告诉你也没用,因为他指针对他自己的qq通讯工具这个软件产品有用)
如果你想知道调用的方法
调用的方法在易语言内只需在dll列表栏内填写声明的函数及其参数及返回的数据,(如有还需其他类型的变量,这你还得声明数据类型)
像我们所熟知的api就是windows系统给程序员在这个系统的平台上所提供的各种编程的函数命令。百度上有介绍这些dll的用法,(如果是学习易语言我建议你去参考"超级模块"的源码,里面有较全的api事例。)
java如何调用别人给的DLL文件
请参考 JNative 手册, 网上有. 这是调用标准C/C++动态库的最简单的方案.
调用步骤:
加载 dll 中的方法:
JNativef_xxx=newJNative("dll文件","方法名称",Convention.STDCALL);f_xxx.setRetVal(Type.INT);//设置返回值
调用:
f_xxx.setParameter(0,参数1);...
获取返回值
f_xxx.getRetValAsInt()或其他...
你中间的调用环节只是设置参数啊,那怎么实际调用他的方法呢,我现在这样写,他返回的是null,理论上应该有值啊
还有,这个参数是干什么用的Convention.STDCALL
调用部分貌似被我编辑掉了, 应该这样调用:
f_xxx.invoke();返回的是空, 你需要检查入参类型是否匹配, 这个要仔细核对. 返回类型如果没有值, 也要设定为 Type.VOID
Convertion.STDCALL 是标记 dll中的这个函数声明的是 __stdcall 模式调用. 还有 __cdecl, __fastcall 其他2种类型, 通常都是 __stdcall
int __stdcall API_USBOpenWithNum(HANDLE *hcomm,int deviceIndex,WORD numInputBuffers);
他现在有一个函数是这样的,文档上说明参数:hcomm是输出参数。我是不是只要设置
jn.setParameter(0, "0x00");
jn.setParameter(1, "0x40");
两个参数就好了
不是的, 参数还要设置3个, 并设置出参类型为 Type.INT
inthccomm=0;jn.setParameter(0,Type.INT,hccomm);
jn.setParameter(1,Type.INT,0);
jn.setParameter(2,Type.INT,0x40);
jn.setRetVal(Type.INT);
try{
intresult=jn.invoke();
}catch(Exceptione){
...
}
int API_USBMF_Write(unsigned char num_blk, unsigned char*key, unsigned char *buffer)
那他给出的函数里面的char类型我应该传什么?String么?还有 char *buffer这个好像是数组类型的应该怎么传呢
char类型当short传.
char*类型,如果仅用作入参,设置为Type.String,传入bytes[]即可.
如果用作出参,则要用到指针:Pointer,譬如:
intbuffer;setParameter(2,Type.INT,buffer);
invoke完毕后
PointerheadBuff=Pointer.createPointerToNativeMemory(buffer,大小);byte[]bytes=headBuffer.getMemory()
怎样查看别人做的软件的源代码(高手进)
无论你学什么都不可能得到真正的源代码的,原因很简单,绝大多数的exe或者dll都是用高级语言诸如C/C++/delphi之类开发的,经过开发环境的编译得到计算机能够执行的二进制机器码文件exe,这个过程是通常是不可转逆的,但是这个过程称之为反汇编或者反编译,也就是说你可以用一些软件(比如W32Dasm等等)将exe之类进行反编译,得到汇编语言的代码,这种代码虽然可能执行结果与原软件相同,但已经与源代码完全不同了。因此绝大多数的软件破解工作,都是基于反汇编的调试工具上进行的,比如ollydbg或者softice等等。
当然有些特例的,比如.net/java/vb等等开发的exe,是有可能用一些专用软件看到部分源代码的。
别人用我电脑的时候我如何用dll文件防止软件被别人卸载?
开个guest用户
应用程序如何变成DLL格式
方法一.注册一下这已加载uxtheme.dll,但没有找到dllregisterserver输入个DLL文件..
格式为:regsvr32 文件名
以你现在的情况 就是在开始-运行中输入regsvr32 uxtheme.dll,如果不能注册请用方法二.
方法二.1.进入系统,打开 Task Manager.
2.在 Task Manager 选择 File-->New Task-->Browse-->
3.移动目录到 windows\system32\
4.找到 uxtheme.dll ,右键鼠标 delete ,然后会找到一个 uxtheme.bak (应该是 bak 后缀的,如果不是,就改同名的),将 uxtheme.bak 该为 uxtheme.dll ....
5.重新启动 pc..
6. good luck.. ;)
方法三:你可以从别人的机子上COPY一个UXTHEME.DLL这个文件过来在安全模式下安装试试咯。没事,小毛病~
方法四:UxTheme.dll 就是XP系统主题支持的核心文件,也就是它让XP无法使用第三方主题。如果你不想安装 StyleXP,那么你可以通过注册 UxTheme.dll 文件来达到目的。实际上,UxTheme.dll 注册版就是推出 StyleXP 的 TGT Soft 在爱好者的强烈要求下放出来的,Microsoft 好像也默认了这种行为,呵呵,真是难得。使用 UxTheme.dll 注册版之后,无需任何其他的软件你就可以在XP的显示属性中管理和调用第三方的主题和风格。
下载 UxTheme.dll 注册版之后,先将 X:\Windows\System32\UxTheme.dll 重命名,例如改成 UxTheme.dll.bak ,然后将注册版的复制过来,重新启动即可。注意,这里还牵涉到Windows XP 的系统文件保护,请参见下面的内容。
下载 UxTheme.dll 注册版之后,先将 X:\Windows\System32\UxTheme.dll 重命名,例如改成 UxTheme.dll.bak ,然后将注册版的复制过来,重新启动即可因为当StyleXP以服务运行时占用的资源非常少,2MB左右,无须修改系统文件,而且管理起主题来比Windows的显示属性方便得多,而且还可以随意更换和管理Logon界面,不需要去烦琐地替换系统文件,等等。真正说喜欢用桌面主题的话,不大可能在乎这么一点点资源的占用。
方法五:开始>运行>SFC /scannow,插入系统盘,修复一下系统文件。
或从网上重新下载一个替换原来的文件 http://www.gpxz.com/soft
把文件覆盖 Windows\system32\dllcache 下的同名文件。
再用这个文件覆盖 Windows\system32 目录下的同名文件
如果弹出“Windows 文件保护”对话框,选择“取消”,然后选择“是”。
不太明白怎么装的,里面有一个自动安装包,同样也要在安全模式下安装。
说明
为了可以直接使用XP第3方主题,所以替换破解版的 uxtheme.dll 是一个完美的选择。这是一个 XP_SP2_2180 中文版的 uxtheme.dll 。
转载请注明出处51数据库 » vs怎么用别人的dll做软件 怎么调用别人的dll文件