在DLL中调用IWbemLocator::connectServer卡死无返回 [问题点数:80分,结帖人Areslee]

Bbs5
本版专家分:2754
Blank
红花 2002年9月 其他开发语言大版内专家分月排行榜第一
Blank
黄花 2011年10月 其他开发语言大版内专家分月排行榜第二
2004年10月 其他开发语言大版内专家分月排行榜第二
2003年7月 其他开发语言大版内专家分月排行榜第二
Blank
蓝花 2011年9月 其他开发语言大版内专家分月排行榜第三
2011年5月 其他开发语言大版内专家分月排行榜第三
2004年7月 其他开发语言大版内专家分月排行榜第三
2002年6月 其他开发语言大版内专家分月排行榜第三
结帖率 97.26%
Bbs12
本版专家分:433003
版主
Blank
榜眼 2009年 总版技术专家分年内排行榜第二
2005年 总版技术专家分年内排行榜第二
Blank
进士 2018年总版新获得的技术专家分排名前十
Blank
银牌 2009年7月 总版技术专家分月排行榜第二
2009年3月 总版技术专家分月排行榜第二
2009年1月 总版技术专家分月排行榜第二
2005年7月 总版技术专家分月排行榜第二
2005年5月 总版技术专家分月排行榜第二
2005年3月 总版技术专家分月排行榜第二
Blank
优秀版主 优秀小版主
2015年8月优秀小版主
2015年9月优秀小版主
2015年5月优秀小版主
2015年2月论坛优秀版主
Bbs5
本版专家分:2754
Blank
红花 2002年9月 其他开发语言大版内专家分月排行榜第一
Blank
黄花 2011年10月 其他开发语言大版内专家分月排行榜第二
2004年10月 其他开发语言大版内专家分月排行榜第二
2003年7月 其他开发语言大版内专家分月排行榜第二
Blank
蓝花 2011年9月 其他开发语言大版内专家分月排行榜第三
2011年5月 其他开发语言大版内专家分月排行榜第三
2004年7月 其他开发语言大版内专家分月排行榜第三
2002年6月 其他开发语言大版内专家分月排行榜第三
dll初始化卡死
今天调试对话框程序的时候发现一个问题,一启动程序立马<em>卡死</em>,刚还能运行的,也没改什么就不行了;于是开始在主对话框的入口下断点,一直下到最开始的App::InitInstance()都没运行到,搞得我都重启电脑了。重启后自然还是不行,于是只好换个思路,在<em>调用</em>的<em>dll</em>入口下断点,一运行还真就卡这儿了,一看刚加的写日志;在调试进去发现卡在lock_guard这里,我就郁闷了,就这一个地方加的锁怎么也死。后
FreeLibrary造成死锁的问题探讨
今天自己在写一测试程序时,显示<em>调用</em>一个DLL时,使用LoadLibrary函数,然后使用FreeLibrary函数进行释放时,出现了程序<em>卡死</em>的情况,网上这方面讲解比较少,且认为这造成了死锁,具体原因确实也弄不清楚~~不知道是测试程序的问题还是DLL的问题,后来索性自己写个DLL,
regsvr32 注册 ocx 时卡死,不退出
今天在将一个 vs2010 写的 exe 工程改造为 ocx 时,前期一切顺利,也能编译通过(不过在最后生成 .ocx 时 vs 一直卡着不动,先暂且不管,通过 Build Cancel 强制退出),最后通过 regsvr32 注册 ocx,写测试页面调试,ok。     突然发现代码中有个小问题,需要修改代码,ok,regsvr32 /u 卸载控件,修改代码,编译。问题来了,vs201
一个DELPHI程序要调用DLL,而DLL中的函数名,参数个数,参数类型为不定
一个DELPHI程序要<em>调用</em>DLL,而DLL中的函数名,参数个数,参数类型为不定请求思路,一个DELPHI程序要<em>调用</em>DLL,而DLL中的函数名,参数个数,参数类型为不定,要<em>调用</em>的DLL中的函数名、参数个数、参数类型要可以在窗口中Edit中动态输入我的意思就是函数不能在程序中事先定义,因为一切都是不固定的,要根据手工输入的参数个数、参数类型来<em>调用</em>这个函数,有些函数是3个参数,有些函数是4个参数手工
关于DLL包含窗体,LoadLibrary后使用正常,但在FreeLibrary时,出错的问题;
由于我写的软件,很多都是要连接不同的服务器, 所以
VB返回硬盘物理序列号
通过VB<em>返回</em>硬盘物理序列号,<em>调用</em><em>dll</em>通过VB<em>返回</em>硬盘物理序列号,<em>调用</em><em>dll</em>
js调用c/c++dll,用字符串/数组作为参数
紧接上一篇文章,本文讨论如何用字符串和数组作为参数
基于对话框的ActiveX控件开发以及MFC对话框调用点击无响应问题
基于MFC的ActiveX控件,主要功能是加载图片进行局部放大。 Demo小样:一、放大控件的设计过程1.新建MFC ActiveX项目 2.添加对话框MyDlg类,对话框ID为IDD_MYDLG; 3.在控件类CActiveXDemoCtrl类中进行改写如下函数 在CActiveXDemoCtrl.h声明对话框类的变量CMyDlg m_mydlg; 改写OnCreate方法 int CAc
易语言dll中文本型参数或返回值在其他语言中调用异常问题
最近用易语言写的一个功能型动态链接库,需要在PB开发环境中<em>调用</em>,但是发现个问题, 易语言中文本型变量和PB中string类型好像不完全一样,传参乱码或者异常等问题 后来根据抛出异常乱码,在编码工具中校验后发现,转为ANSI编码显示是正常的 这就好解决了,在声明函数是指定下编码方式 Function string test(string temp) library "te.<em>dll</em>" Al
QT 调用DLL 各种坑......!
  https://blog.csdn.net/qq_34837137/article/details/52277447 坑1: 坑2:  
FreeLibrary 出错原因及解决办法
写了一个 DLL ,封装了一个类,该类有一个函数名为 WriteRecord(P: Pointer),其中参数 P 是一个记录指针,子类在 override 该函数时学根据将 P 指针转为子类所支持的记录类型,如:var    pt: PBookInfo;begin   pt := PBookInfo(P);   ...end;该 DLL 有一个导出函数:  fun
关于用JAVA JNI 调用dll时出现的问题
大家好,这是小弟第一次在CSDN发博客,下面进入我的问题,希望有人能解决我的疑惑。 下面是我写的<em>调用</em>DLL的部分代码:class GetValue{ public native String getCalcValue(String strSoftware,int iType,String strIndata); static { System.out.println(&quot;静态代码快&quot;); ...
为什么不能在DllMain中调用LoadLibrary,FreeLibrary以及调用CreateThread?
在项目中需要这样一个场景: 当一个<em>dll</em>被加载时候,在这个<em>dll</em>中需要加载另一个<em>dll</em>。 尝试在DLL_PROCESS_ATTACH<em>调用</em>LoadLibrary发生程序<em>卡死</em>。google之得到下面回答: “不能在DllMain中<em>调用</em>LoadLibrary,FreeLibrary以及Shell,ODBC,COM,RPC和socket函数与CreateThread” 原因是什么?     因为Dl...
NettyServer
Netty搭建的Java Http Server, 可以在浏览器中输入地址, <em>返回</em>请求; 测试在Java程序中, 有效; 在Android机器上, 会<em>卡死</em>,暂时无解决方案;
Vc++编写ocx异步调用dll
为网页<em>调用</em><em>dll</em>封装一层ocx且增加回调函数防止页面<em>卡死</em>
关于C++调用C#封装的dll后,获取C#中string返回值的问题
需要#include C#中的string与C++中的CString对应
jna调用系统dll文件并且获得返回参数的实例
采用java jna4.1 <em>调用</em>C编写的<em>dll</em>文件,获得<em>返回</em>结果,且获得<em>返回</em>参数的例子
python调用dll文件时传入参数是int*,返回值是char*,对传入的char*所指的内容的修改
首先 若<em>调用</em>的<em>dll</em>中的函数的参数是int型的指针: 在
Delphi DLL动态链接库的初始化和善后工作
一般的DLL不需要做初始化和善后工作,但如果想让DLL在被载入时先作一些初始设定,或者退出时释放资源,则可以用一下三种方法达到目的。     第一种方法:利用Unit的Initalization与Finalization这两个小节
(已更新)关于混合编程中C#调用C/C++DLL碰到具有数组、指针的参数或返回的解决办法(亲测)!
更新部分直接看文章最后!          如题,最近一段一直在搞工控类项目的上位机调度软件开发,由于扫描模块是余博用C++写的, 所以涉及到混合编程的问题了。         C#<em>调用</em>C++DLL的方法网上都有,把DLL放进exe的生成目录内,然后引用System.Runtime.InteropServices命名空间,然后在主类内部加上外部引用声明就好了。 [DllI...
pb 调用dll时关于指针参数处理
 声明<em>dll</em><em>调用</em>时如果有参数是 指针类型时   定义时需要在相应类型前面加上ref 表示传递的地址而不内容 ref +简单类型 复杂类型 会自动将其地址复制一份进行传递 对简单类型参数是否被ref修饰的区别在于:被修饰了的参数将以地址方式传值;未被修饰的参数将以拷贝方式传值。对复杂类型参数是否被ref修饰的区别是相似的。由于复杂类型参数都以地址方式传值,因而不被修饰
c++ dll接口返回字符串
假如说,我们封装的<em>dll</em> 有<em>返回</em>字符串的需求,比如有这么个函数 string oneclass::getString() { string res =  string(); ...do something,,, return res; } 的话,如果我们直接使用std::string 作为接口<em>返回</em>值的话,是会有一些问题的 具体的问题 可以百度 "尽量不要在Dll的接口中使用str
C#调用C++的Dll(参数和返回值為char* TCHAR*)--Donnie2016,写的很好!转下
想要在C#和C++之间进行字符串传递会涉及到两件事情: 1.C#的string和C++的字符串首指针要怎么对应.   2.字符串分为ANSI和UNICODE. C++ 头文件接口: [cpp] view plain copy //FilePolice.h      //參數和<em>返回</em>值為Ansi   exter
VC++动态调用DLL 和静态调用DLL
一).静态<em>调用</em>其步骤如下: 1.把你的youApp.DLL拷到你目标工程(需<em>调用</em>youApp.DLL的工程)的Debug目录下; 2.把你的youApp.lib拷到你目标工程(需<em>调用</em>youApp.DLL的工程)目录下; 3.把你的youApp.h(包含输出函数的定义)拷到你目标工程(需<em>调用</em>youApp.DLL的工程)目 录下; 4.打开你的目标工程选中工程,选择Visual C++的Pr...
通过WMI获取系统信息
要了解WMI,请查阅:http://www.microsoft.com/china/technet/community/scriptcenter/resources/wmifaq.mspx#EJC 。       WMI是一组COM对象,其接口比较多,详细请参考:http://msdn.microsoft.com/library/default.asp?url=/library/en-
LoadDllByLua
使用Lua<em>调用</em>C++DLL中的函数,只需要知道DLL名称,DLL中的函数名称以及函数值类型、<em>返回</em>值类型就可以<em>调用</em>,无需改动C#代码。
C#调用Delphi Dll返回字符串的示例
  //----------------------Delphi-------------------procedure GetSqlData(ASource: PChar; ADest: PChar; ADestSize: Integer); stdcall;var S: string;begin if ASource = nil then Exit; S := Fo
生成dll文件以及python对DLL中函数的调用(参数类型以及返回值)
首先,<em>dll</em>工程的创建以及<em>dll</em>文件的生成:
C# 调用C/C++ Dll(参数含char*指针,返回char*指针)
动态库: //MyPointDll.h extern"C" _declspec(<em>dll</em>export) char* strcpyTest(char* dest,char* sour);
C#调用C++的Dll(参数和返回值為char* TCHAR*)
想要在C#和C++之间进行字符串传递会涉及到两件事情: 1.C#的string和C++的字符串首指针要怎么对应.   2.字符串分为ANSI和UNICODE. C++ 头文件接口: //FilePolice.h //參數和<em>返回</em>值為Ansi extern "C" __declspec(<em>dll</em>export) char* __stdcall EncryptString(char
vb6标准dll完美终结版退出前崩溃处理FreeLibraryAndExitThread
vb6标准DLL完美了,主要是进程退出时,这个函数<em>调用</em>一下就成了FreeLibraryAndExitThread,也可以写成一个过程,中间把<em>dll</em>卸载,再重新加载都可以。 各种不同版本的标准DLL试了几十个, 有的只能执行VB的简单算法,那还用什么DLL,直接<em>调用</em>一下vbs脚本都是一样。 想要在DLL中显示窗体或者<em>调用</em>API时涉及到读取COM对象等类型,VB的内存回收机制,他不会自动完美清...
Java 通过 JNA 调用 DLL 返回 char * 字符串乱码问题的解决
最近一个 Java 项目需要<em>调用</em>公司的读卡器读取卡号。C 开发提供了一个读取卡号的 DLL。     Java <em>调用</em> DLL 无非三种方法:JNI、JNA、JNative     本来 C 开发测试时用了 JNative.jar 来<em>调用</em> DLL,但是网路上的 JNative.jar 都是基于 32 位系统,其 jar 包中的两个 DLL 也均为 32 位。     在我本地尝试时都报错:
调用DLL未导出函数由参数列表引发的问题
0x00 背景 为了<em>调用</em>一个<em>dll</em>中未导出的函数,首先用IDA分析它的<em>调用</em>约定和参数列表。分析出来的函数声明是这样的: typedef int (__thiscall* FP_SUB)(void *t, int a2, int a3) 然后用一个for循环去<em>调用</em>这个函数,代码逻辑大致如下: void call_stub(void* t, int a2, char a3) { ...
jquery ajax 请求php,导致页面卡死,按钮没反应
百分百是json格式有问题!!!!!!!!!!!! 1.检查json标点符号。 2.存在变量时,检查变量是否定义。 3.如果变量名和json键名崇明,最好换名字   $.ajax( type : 'post', url : 'https://www.baidu.com', dateType : 'json', data : { type : typea, m...
易语言假死无响应采用处理事件()
处理事件() 一个比较简单的理解是:让程序反应过来 这个函数一般是用在延时之后,如果不用的话程序很容易形成假死,造成程序无响应 如下图,虽然这个程序还在运行,但是界面上东西是显示不了的,比如标签,编辑框,画板,会有一个圆圈转啊转 加了处理事件() 就可以避免这种情况, 可以试试看,在一个计次循环或者判断循环里使用延时函数,然后分别在后面加上处理事件() 和不加处理事件() 。 位置...
C# 调用易语言dll 返回文本参数
文本参数 涉及非托管内存操作,给出两种解决方案: 1,在易语言<em>dll</em>(被<em>调用</em>者)中申请内存,<em>返回</em>内存指针和长度,在C#(<em>调用</em>者)中取出文本并释放内存资源; 易语言<em>dll</em>函数: 相对应C#<em>调用</em>函数,需要引用命名空间:using System.Runtime.InteropServices; [DllImport("91vpn.<em>dll</em>")] public s
Qt调用DLL动态库接口函数程序崩掉
工作中使用Qt开发,<em>调用</em>外部动态库.<em>dll</em>,在<em>调用</em>接口函数时总是运行之后崩掉,提示段错误!单步调试总有变量被意外改动,弄了两天在同事的帮助下解决! 方法如下:在定义接口函数指针时添加  _stdcall,它的缺陷是只能运行在windows平台,不能跨平台 typedef _stdcall int (*Func_WtDev_AxisCount)(int VehicleID); 问
C语言的DLL怎么给VB返回String(char*)呢
这个问题很少有资料可以搜索得到,主要是因为现在的程序员要么是C/C++,要么VB(.NET),即有一种钟爱的语言.跟罗sir交流了一下,罗sir是C#骨灰级玩家,专攻网络开发,他认为DLL加载到exe里成为一个模块,不能对上一级的变量赋值.    除了我这种患有代码痴迷症的人,不会有人去研究这个问题了,经过几天研究,发现了一些窍门,最近又遇上用它的地方,所以干脆发达这里来,希望对大
C# 调用 C++ 写的Dll 遇到的问题(调用DLL 自动退出)
1 回调函数正确<em>调用</em>一次之后,程序自动 在回调函数前面加     [UnmanagedFunctionPointer(CallingConvention.Cdecl)] 进行修饰 如下所示:   [UnmanagedFunctionPointer(CallingConvention.Cdecl)]  public delegate void RecivecallBack(IntPtr
如何在DLL的输出函数中返回字符串给调用
function aa( outstr: PChar ): Boolean; stdcall; var straa: string; //必须通过局部变量中转,不能直接使用var参数 begin Result := False; straa := 'abcd'; Move(straa[1], outstr^, Length(straa)); Result := True; end;  <em>调用</em>:function aa(va
C++DLL中使用WIN32无窗口定时器
项目开发时,使用了SetTimer函数,来打开多个定时器。查了好多方法,有自建定时器类的,有自建消息泵的。 而因为我这个定时器是要放在DLL中的,所以自建消息泵的方法看似有用,其实是多此一举。实验中发现,不加消息泵,一样可以收到WM_TIMER消息的。而且,即使这样做了,一样还是收不到类似1,2之类的定时器ID。 关于自建类的,我是向来没有什么好感,我觉得解决问题的方法越简单越好,弄得复杂了,
Python:使用ctypes库调用外部DLL 数据类型对应
Python:使用ctypes库<em>调用</em>外部DLL 数据类型对应
nodejs调用c++dll返回结构类型
// cnc_resetconnect.cc #include #include #include #include namespace demo { using v8::FunctionCallbackInfo; using v8::Isolate; using v8::Local; using v8::Object; using v8::St
C++代码封装成dll供C#中调用调用dll无可用源
C#工程不可以直接<em>调用</em>C++的头文件和Lib库等 所以在程序中C#需要<em>调用</em>的现象,先将C++的东西封装成动态链接库,再<em>调用</em> 若<em>调用</em><em>dll</em>时显示:无可用源<em>调用</em>,说明导入的DLL路径不对。 静态库和动态库区别: 静态库和动态库是两种共享程序代码的方式,它们的区别是:静态库在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加
调用DLL中的对象的方法返回值为string时报错
<em>调用</em>DLL中的对象的方法<em>返回</em>值为string时报错!!!! 问题: 对象TDllNumber在obj<em>dll</em>.<em>dll</em>中定义: obj<em>dll</em>.<em>dll</em>输出一个函数:CreateObject type TDllNumber=class public function GetOk:string;virtual;abstract; end; TDllNumber1=class
C#调用C++生成的DLL,并返回结构体引用或者结构体指针多个值
C#<em>调用</em>C++生成的DLL,并<em>返回</em>结构体引用或者结构体指针多个值 目录 C#<em>调用</em>C++生成的DLL,并<em>返回</em>结构体引用或者结构体指针多个值 步骤1:首先新建C#工程,如图所示 步骤2:解决方案里添加C++工程 步骤3:用C#项目<em>调用</em>C++创建DLL 步骤1:首先新建C#工程,如图所示 创建完后,整体效果如下 步骤2:解决方案里添加C++工程 ...
Delphi通过LoadLibrary调用其他动态库
procedure TFrmrydj.btnJYJJClick(Sender: TObject); type Tfzyb_yjjgl=procedure;stdcall; var LibHandle: THandle; fzyb_yjjgl:Tfzyb_yjjgl; begin try LibHandle := LoadLibrary('zyb_yjjgl....
delphi写的调用Dll中的窗体的范例和源码
Exe<em>调用</em>Dll 中Form 的例子 可以传入字符串,<em>返回</em>字符串,包含全部源代码
delphi 编写dll返回pchar 类型出现乱码
前段时间 用delphi 为公司开发的<em>dll</em> 当使用pchar 作为<em>返回</em>值时 发现一些语言接收到的数据中包含乱码问题。 应该是<em>返回</em>指针类型是数据出错。 于是在每一个函数<em>返回</em>前 在其<em>返回</em>值后添加 char(0) 做结束字符。 一个char(0)不够 ,就再加一个。 测试pb 中没有再出现次情况了 vb 中接收<em>返回</em>值 需要做一些处理 [c...
C# 调用C++ dll 方法返回char* 乱码
直接上代码 C++ 代码中 #define MEDUSA_EXPORT_API __declspec(<em>dll</em>export)  static char[1024*2] buff;//使用静态数组<em>返回</em>才不会乱码,即使在<em>调用</em>方法中使用堆内存也会被释放,所以声明全局静态编辑 MEDUSA_EXPORT_API char* getChar() { std::string a = "
使用JNA调用DLL函数遇到的问题
在项目中需要使用JAVA<em>调用</em>DLL函数,搞了几天终于搞通了,赶紧把理解的重要内容记录下来。 使用DLL函数查看器进行查看函数名称及各参数 本例子就拿GetMac函数进行举例,记事本中为在VB环境中<em>调用</em>此函数的函数声明 此函数只有一个参数,通过传入字符串类型的IP地址,可以得到对应IP地址的MAC地址 因为传入参数为Long整形,故猜测应该传入的类型为指针类型,在JNA中对应
Dll中调用Domodal崩溃
DLL中弹出对话框: AFX_MAMAGE_STATE(AfxGetStaticModuleState());// 弹出对话框前需要<em>调用</em>这条语句 CTestDlg dlg; int rlt = dlg.DoModal();   可以参考以下: (1)extern "C" __declspec(<em>dll</em>export) void ShowDlg()         
java调用Oracle存储过程的简单例子源码
java<em>调用</em>Oracle存储过程的简单源码示例, 包括无<em>返回</em>参数,<em>返回</em>单个参数和<em>返回</em>参数集合三种<em>调用</em>情况!
C# 调用C++dll中接口,返回const char*
const char* 是由构建的JSON 转 std::string ( toStyledString() ) 然后 c_str();在C#中使用的时候就无法获取正确的字符串;使用 string来接收、使用IntPtr接收都是乱码原因应该是定义在接口函数中的std::string 为临时变量,所以定义了一个 全局静态变量 static std::string g_str;用全局静态变量来传递JS...
delphi与C++ dll 之间的数据传输(字符串,数组)
1、delphi向C++ <em>dll</em>中传入字符串 delphi中: TsavePicture= procedure(filename:pansiChar); cdecl; name:PAnsiChar; name:=PAnsiChar(AnsiString('test.jpg')); C++中: MYDLL void GetImage(char* filename); str
Delphi string类型在dll中供外部调用规则
Delphi 的内存共享机制要求用户在DLL文件中,如果使用了 string 类型传入DLL中的函数(或者过程)或者由DLL中的函数<em>返回</em>,那么在本单元和工程文件中都必须引用 ShareMem 单元,并且一定要保证 ShareMem 单元是本单元引用的第一个单元。例如:uses  ShareMem,SysUtils,  Classes;还有一个要求就是 BORLNDMM.DLL 这个文件也必须和你编...
C/C++实战006:解决python调用dll返回数字问题
       昨填在<em>调用</em>c/c++编译的<em>dll</em>时遇到一个问题,那就是当我们用string定义函数的时候,出现警告与c不兼容,于是我把<em>返回</em>值改成了char*,虽然不报错,但是<em>返回</em>的数据确是一串数字(每次<em>返回</em>还不一样),根本无法识别<em>返回</em>状态。 警告 1 warning C4190: “transmission”有指定的 C 链接,但<em>返回</em>了与 C 不兼容的       因为这里是跨平台<em>调用</em>,无...
C#调用C++DLL出现的堆被损坏,说明加载的任何DLL中有Bug
很多系统底层使用C++(MFC),界面使用C#(WPF)技术。这就要运用大量的导入导出函数,在C#中<em>调用</em>C++中的函数。由于C#是托管代码,摒弃了C++中“危险”的指针,所以在传递字符串的时候造成一些的问题。尤其是在MFC中字符串声明为CString类型,导出函数的<em>返回</em>为char*类型。常规的C#中需要使用string来代替从C++ DLL中导入的带有char*类型的函数。这就造成了隐患,会产生很多致命的BUG C#<em>调用</em>C++DLL出现的堆被损坏,说明加载的任何DLL中有Bug。
C#调用c++Dll结构体数组指针的问题
C#<em>调用</em>c++<em>dll</em>文件是一件很麻烦的事情,首先面临的是数据类型转换的问题,相信经常做c#开发的都和我一样把学校的那点c++底子都忘光了吧(语言特性类)。 网上有一大堆得转换对应表,也有一大堆的转换实例,但是都没有强调一个更重要的问题,就是c#数据类型和c++数据类型占内存长度的对应关系。     如果<em>dll</em>文件中只包含一些基础类型,那这个问题可能可以被忽略,但是如果是组合类型(这个叫
C#调用动态链接库DLL
1.概述动态链接库(Dynamic Linked Library):将写好的函数存在库中,以供其他程序开发<em>调用</em>,<em>调用</em>方式为“动态的”。 Windows为应用程序提供了丰富的函数<em>调用</em>,这些函数<em>调用</em>都包含在动态链接库中。其中有3个最重要的DLL,Kernel32.<em>dll</em>,它包含用于管理内存、进程和线程的各个函数; User32.<em>dll</em>,它包含用于执行用户界面任务(如窗口的创建和消息的传送)的各个函数
Delphi中DLL初始化和退出处理
利用Unit的Initalization与Finalization这两个小节  可以在Unit的这两个小节中安排Unit的进入和退出,但是Program与Library并没有这两个部分,所以只能写在Unit中。利用ExitProc变量  在Library的begin..end.中间是可以写代码的,这里可以放置DLL初始化代码。如果想要做善后工作,
python调用C动态库导出函数的返回值为指针类型时,在64位python环境下被截断解决方法
2015年8月20日 16:57:11      又为一个问题浪费了两天的时间:      问题描述如下:染色日志库通过ctype导入,在64位的linux系统中只有主线程能正常使用,子线程创建日志对象并使用都会出错,报段错误。      问题的最终原因:64位的地址被python向int转换发生截断。           class my_void_p(c_void_p):    
Java调用ocx控件以及dll
通过Java<em>调用</em>OCX控件有几种方法,JNI、JACOB、Jawin等 1.JNI 最直接的方式,也是最麻烦的方式,需要自己完成所有的工作,不推荐。 2.Jawin 尝试了一下,效果不错,但相对来说,其编程风格更贴近Windows,离Java有点远 。 3.Jacob 使用Jacob非常方便,Java编程风格,需要了解的知识比较少。   Jacob的使用方法:   首先--  
关于Qt调用Matlab的dll函数失败的问题
我是一个刚接触qt不久的小白,使用Qt<em>调用</em>Matlab的函数看了网上各种大佬的文章,基本前期都调试好了,但是最后总是一步有问题。隐式引用封装好的<em>dll</em>函数时Qt总会显示<em>调用</em>失败,这里遇到的原因是因为Matlab在<em>调用</em>c++编译器封装<em>dll</em>时,函数名称发生了改变。比如我封装的函数名是qtTest,但是封装过后由于编译器的原因,名字变成了“?qtTest@@YAXHAAVmwArray@@ABV1@@...
dll回调给java的函数参数需要有字节数组类型参数的处理
这段时间通过jna框架搞java<em>调用</em><em>dll</em>的函数的程序,并且涉及到了回调函数,回调函数即<em>dll</em>传给java参数,由java来处理这些参数,一般的c++封装的<em>dll</em>文件涉及的回调函数参数有String和int,很少有涉及字节数组,而这次的项目需求是通过<em>dll</em>的函数建立ip及端口号的连接,并收取字节数组的数据,收到之后交由java实现的回调函数进行处理。c++表示字节数组一般为BYTE *,如果在ja
C#调用易语言返回字符串
易语言代码: 易语言要<em>返回</em>字符串,必须先声明一个文本型变量,然后给该变量赋值,<em>返回</em>该变量; C#<em>调用</em>代码: [DllImport("./e.<em>dll</em>")] private static extern string test();
vs2010 vc++ 写成dll 被易语言dll 调用然后返回文本
直接上代码了 例如建立的项目名称为 my<em>dll</em>01 建立方法  打开vs2010  “文件”  “新建” 新建项目  选择 visual c++  选择 win32  在右边窗口 选择 win32项目 下面名称我起了测试名称 my<em>dll</em>01 然后下一步 应用程序 选择 <em>dll</em>  然后点”完成“就可以了   3个文件需要写 my<em>dll</em>01.h 这个手工建立一个就行 里面输入 //myd
vs2010下V C++调用C#编写的dll时可能遇到的问题
最近编写C++<em>调用</em>C#编写的<em>dll</em>时,碰到诸多问题,主要原因是在编写C#的<em>dll</em>时还<em>调用</em>了其它的<em>dll</em>动态链接库,所以比较复杂。 在按照正规步骤编写完C#  <em>dll</em>之后,觉得万事大吉了,(因为单纯调试<em>dll</em>时并未任何异常和错误),后来才发现后面<em>调用</em>的时候有个细节被忽略了(编译平台)。 首先编写<em>dll</em>的时候   添加<em>dll</em>:点击项目属性,添加引用----------》  #using
C#调用C++DLL取wchar_t*时异常处理
最近用C#获取C++的wchar_t*时出现:此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。网上好难搜到解决方法,自己研究了一天,发现wchar_t*数据长度超过22时,就会出现这个问题。初步怀疑是不是StringBuilder的长度不足...
ReadFile函数卡住
你在打开文件时用了FILE_FLAG_OVERLAPPED,但是ReadFile中 lpOverlapped传的是NULL。把FILE_FLAG_OVERLAPPED改成FILE_ATTRIBUTE_NORMAL试试。 ================================ 打开文件时不用FILE_FLAG_OVERLAPPED,ReadFile的最后一个参数就是NULL。如果用了FIL...
c# 调用c++ dll文件中的bool类型解决办法
[return: MarshalAs(UnmanagedType.I1)] [DllImport("ximcamera.<em>dll</em>", CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs(UnmanagedType.I1)] public static extern bool Open(string cam); //o
C#处理返回为LPSTR的DLL调用
1、在vc中我是这么定义接口函数。   int _stdcall GetGeoInfo(double dx,double dy,const char* szPath,char* field1,char* field2,bool v_bIsCache,LPSTR pszBackString)   LPSTR pszBackString为要传出的字符串信息。   StringBuilder st
C++ Dll回调C#方法,Dll中要将字节数组传递给回调方法
转载:http://www.cnblogs.com/Eashion/archive/2008/12/18/1357681.html  在VC中封装的网络通信模块,在异步接收到数据时需要将内容传递给C#中的消息处理函数,于是便出现了如标题所说的情况。     C++的回调函数中有一个参数,是处理接收到的字节流的回调函数指针,定义基本如下:          typedef  void  (
c# 调用 c++ DLL 的各种问题
本文非完全 每种编程语言<em>调用</em>DLL的方法都不尽相同,在此只对用C#<em>调用</em>DLL的方法进行介绍。首先,您需要了解什么是托管,什么是非托管。一般可以认为:非托管代码主要是基于win 32平台开发的DLL,activeX的组件,托管代码是基于.net平台开发的。如果您想深入了解托管与非托管的关系与区别,及它们的运行机制,请您自行查找资料,本文件在此不作讨论。
VB调用VC++的DLL问题:1.无法返回参数,2.找不到入口点
最近忙于毕业论文的实验,主要用VS2010+openCV做图像处理,做了大量工作,遇到无数的问题。 首先就先说说今天遇到的问题吧:我想利用VB中读取的图像路径传入VC++,之前有的办法一直是将VB的字符串tempPath转换成Byte数组之后传入C++。如:             Dim sbyt() As Byte             ReDim sbyt(tempPath.Leng
Unity使用C#调用C++dll传递指针参数、接收指针返回
C#<em>调用</em>C++<em>返回</em>指针参数 用IntPtr接收<em>返回</em> 下面是引入DLL的代码片段: [DllImport(&quot;BthExports&quot;)] public extern static IntPtr BthGetName(UInt64 ullAddr); 其<em>返回</em>的内容为一个Uint64的数组,我们可以用“IntPtr”来代替这个C++方法体<em>返回</em>的指针,我们可以先来看一下“IntPtr”的定义:“In
VC中DLL的调用规则 VC中DLL的调用规则 VC中DLL的调用规则
VC中DLL的<em>调用</em>规则 VC中DLL的<em>调用</em>规则 VC中DLL的<em>调用</em>规则
Delphi中DLL两种调用方式的比较
摘要:本文阐述了Windows环境下动态链接库的概念和特点,对静态<em>调用</em>和动态<em>调用</em>两种<em>调用</em>方式作出了比较,并给出了Delphi中应用动态链接库的实例。 一、动态链接库的概念 动态链接库(Dynamic Link Library,缩写为DLL)是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。动态链接库文件的扩展名一般是<em>dll</em>,也有可能是drv、sys和fon,它和
Delphi字符串 DLL传递字符串方式
由于是半路出家,写起代码来比较随性。每次在写<em>dll</em>传递字符串时需要费很大的劲。 在这里来一个Demo演示一下: <em>dll</em>代码:library <em>dll</em>test1; uses SysUtils, Classes; {$R *.res} procedure fun1(p1: pchar; var p2: pchar); stdcall; var str: string; begin
C#调用C++DLL传递结构体数组的终极解决方案
在项目开发时,要<em>调用</em>C++封装的DLL,普通的类型C#上一般都对应,只要用DllImport传入从DLL中引入函数就可以了。但是当传递的是结构体、结构体数组或者结构体指针的时候,就会发现C#上没有类型可以对应。这时怎么办,第一反应是C#也定义结构体,然后当成参数传弟。然而,当我们定义完一个结构体后想传递参数进去时,会抛异常,或者是传入了结构体,但是<em>返回</em>值却不是我们想要的,经过调试跟踪后发现,那些值
jna调用dll, 结构体方式调用 (简单demo)
看下<em>dll</em>文件格式   1. 定义pojo和c的结构体对应的属性  需要定义(int d, double len)  注: 一定要继承Structure /** * 封装c结构体 * * @author cq */ public class Data extends Structure { public int d; public double len; //...
使用Delphi调用C++编写的DLL
1、C++编写的DLL代码如下:该Dll的功能比较简单,就是实现一个整数加法;IAddBase 是一个抽象类,IAdd实现了IAddBase的方法,并采用了单例模式;GetAddInstance()为<em>dll</em>对外的接口,<em>返回</em>一个IAdd的对象指针;<em>调用</em>者使用该实例就可以<em>调用</em>Add方法class IAddBase{public:   int virtual __
c#调用c++写成的dll文件,返回char*,返回数组,用ref接收,byte[] (zz)
c#<em>调用</em>c++写成的<em>dll</em>文件,<em>返回</em>char*,<em>返回</em>数组,用ref接收,byte[] ,最近做个项目,又想不起来了。这下Mark一下 / Inclusion guard #ifndef _DLLTUT_DLL_H_ #define _DLLTUT_DLL_H_ // Make our life easier, if DLL_EXPORT is defined in a file
VB.NET调用DLL实现方法解析
      VB.NET开发平台专为编程人员打造一个功能强大,性能稳定安全的编程环境。在这里我们先为大家想写介绍一下VB.NET<em>调用</em>DLL的相关方法,来让大家对这门语言有一个初步的了解,并增加大家的开发经验。       一般VB.NET<em>调用</em>DLL可以通过Declare 语句在模块级用于声明对动态链接库 (DLL) 中的外部过程的引用。 Private Declare Sub myFunc1 ...
MFC程序中无法动态加载自己写的win32dll,loadlibrary返回值总是null,报错126
原因是你需要加载的<em>dll</em>还加载了很多子<em>dll</em>,这些<em>dll</em>都必须要放在MFC主程序exe相同的目录下。 具体操作就是通过查看<em>dll</em>都包含了哪些子<em>dll</em>,将这些子<em>dll</em>使用loadlibrary看是否能够加载成功,如果不能加载成功,也和主<em>dll</em>一样。如果一个主<em>dll</em>所依赖的所有子<em>dll</em>都能被加载,那么它本身也一定可以被加载。...
win7 64 DLL的远程注入技术 及注入dll函数调用
一、DLL注入 DLL的远程注入技术是目前Win32病毒广泛使用的一种技术。使用这种技术的病毒体通常位于一个DLL中,在系统启动的时候,一个EXE程序会将这个DLL加载至某些系统进程(如Explorer.exe)中运行。 这样一来,普通的进程管理器就很难发现这种病毒了,而且即使发现了也很难清除,因为只要病毒寄生的进程不终止运行,那么这个DLL就不会在内存中卸载, 用户也就无法在资源管理器
C#调用C++的dll实例,回调函数,string和int数组参数传递
C#<em>调用</em>C++的<em>dll</em>实例,回调函数,string和int数组参数传递,在vs2010下调试通过,总结在这里,供大家参考。
java调用第三方dll中函数
项目中碰到需要<em>调用</em>别人提供的<em>dll</em>中的函数。
QT DLL调用 返回int 结构体数组 结构体二维数组
QT DLL<em>调用</em> <em>返回</em>int/QDialog/string/结构体数组/结构体二维数组
讨论:java调用windows 下dos命令wmic的奇怪现象
   java 与外部进程通信。 由于java 是跨平台的,有时候我们需要用到操作系统的一些信息,为了方便期间,干脆就直接<em>调用</em>操作系统的命令来实现,比如查看IP地址,MAC地址等。不过两个在jdk6里面已经有了,不过以前都是用<em>调用</em>dos 命令,然后获取输出的办法来做的,比如: import java.io.*; public class DT { public static v...
java调用dll时得到一个函数的输出参数值
各位大侠,我目前有个问题请教,请多指点,问题是这样的, 在<em>dll</em>文件里有一个函数,这个函数有一个输入参数,一个输出参数,然后还有一个<em>返回</em>值,现在我要用java<em>调用</em>这个函数的输出参数,应该怎么<em>调用</em>, 我现在在<em>调用</em>这个函数的时候得到的是这个函数的<em>返回</em>值而不是输出参数,我应该怎么能得到这个函数的输出参数呢, 在线等,急急...
c#调用c++DLL,dll有二维数组
c#<em>调用</em>c++DLL,DLL里是二维数组 ,c#里如何<em>调用</em>二维数组
传递VB数组给DLL中的函数
用C++builder6编写一个标准的DLL给VB6<em>调用</em>,需要从DLL取出字节数组,在VB中接收。 Private Declare Function OpenComm Lib "ScaleWeight" Alias "Open" (ByVal yibiaoType As String, ByVal Comm As String, ByVal Setup As String) As Boolean
python调用dll, 复杂结构体做参数。
python <em>调用</em><em>dll</em>   字节对齐 windows下,弄了一下午 就快要放弃,最后终于有点OK 在此记录,以备后用。 最初尝试 继承ctypes.Structure。本地的是4个字节的对齐,python中用class方式无法指定对齐方式,只能按照默认的对齐,正常的int,double,double 需要24 个字节,而我本地20个字节。 失败。   最后尝试用 truct.pack
Libcurl中使用curl_easy_perform阻塞, 遇到无信号卡死的完美解决方案
Libcurl中使用curl_easy_perform阻塞, 遇到无信号<em>卡死</em>的完美解决方案 项目背景:     近来jwisp在做OMA-DM的android终端侧, 要实现的功能包括FUMO, SCOMO下载管理. 由于项目是基于funambol的开源代码, 在实现FUMO和SCOMO时, 使用了libcurl的库来实现下载服务测的指定文件, 下载后实现android固件升级或android
C#调用C++DLL,正确接收与传递中文字符方法
通常,c++ <em>dll</em>库字符编码方式都为utf-8,c#<em>调用</em><em>dll</em>时,若遇到中文字符的接收与传递,会出现中文字符显示乱码与无法传递。 按照对应关系,若<em>dll</em>中参数为char[],例如char[64] name;则对于的c#字符定义为: [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string name; 若name
golang调用C程序传递和返回字符串
项目中需要用Golang<em>调用</em>C生成密码,因此借机熟悉了一下cgo的一些用法。 基本用法网上已经有教程,但是关于字符串的传递的文章还不多,因此记录下。 1. 编写C文件,包含一个函数,函数接受字符串,同时<em>返回</em>字符数组。注意这里的<em>返回</em>的数组是malloc申请的,<em>调用</em>的时候需要释放。 //foo.c #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;g...
强连通分量及缩点tarjan算法解析
强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Time, DFN[N], Low[N]; DFN[i]表示 遍历到 i 点时是第几次dfs Low[u] 表示 以u点为父节点的 子树 能连接到 [栈中] 最上端的点   int
SPSS统计分析从入门到精通下载
SPSS(Statistical Product and Service Solutions),“统计产品与服务解决方案”软件。最初软件全称为“社会科学统计软件包”(SolutionsStatistical Package for the Social Sciences),但是随着SPSS产品服务领域的扩大和服务深度的增加,SPSS公司已于2000年正式将英文全称更改为“统计产品与服务解决方案”,标志着SPSS的战略方向正在做出重大调整。 IBM公司2009年7月28日宣布将用12亿美元收购分析软件提供商SPSS。SPSS称将在2009年10月2日召开特别股东大会投票表决有关将该公司出售给IB 相关下载链接:[url=//download.csdn.net/download/tc_pis/3455146?utm_source=bbsseo]//download.csdn.net/download/tc_pis/3455146?utm_source=bbsseo[/url]
《精通CSS+DIV网页样式与布局》光盘源码下载
第1部分 CSS基础知识篇  第1章 CSS的初步体验    1.1 CSS的概念    1.2 使用CSS控制页面    1.3 体验CSS   第2章 CSS的基本语法    2.1 CSS选择器    2.2 选择器声明   2.3 CSS的继承  第3章 用CSS设置丰富的文字效果    3.1 CSS文字样式   3.2 文字实例一:模拟Google公司Logo    3.3 文字实例二:制作页面的五彩标题    3.4 CSS段落文字   3.5 段落实例:百度搜索   第4章 用CSS设置图片效果    4.1 图片样式    4.2 图片的对齐   4.3 图文混排    4. 相关下载链接:[url=//download.csdn.net/download/zhangjingqiang/2054380?utm_source=bbsseo]//download.csdn.net/download/zhangjingqiang/2054380?utm_source=bbsseo[/url]
计算机常用网络命令一览表下载
word 文档格式 如:Ping ,Netstat等 相关下载链接:[url=//download.csdn.net/download/wrylmoon/2394344?utm_source=bbsseo]//download.csdn.net/download/wrylmoon/2394344?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 学习大数据电脑卡死 大数据无基础
我们是很有底线的