请教多线程并行调用dll的问题 [问题点数:40分,结帖人netboygg]

Bbs3
本版专家分:881
结帖率 99.27%
Bbs3
本版专家分:881
Bbs12
本版专家分:411010
版主
Blank
名人 2014年 荣获名人称号
2013年 荣获名人称号
2012年 荣获名人称号
Blank
状元 2013年 总版技术专家分年内排行榜第一
Blank
探花 2014年 总版技术专家分年内排行榜第三
Blank
进士 2012年 总版技术专家分年内排行榜第四
Bbs3
本版专家分:881
Bbs9
本版专家分:88656
Blank
金牌 2015年2月 总版技术专家分月排行榜第一
2015年1月 总版技术专家分月排行榜第一
Blank
银牌 2015年3月 总版技术专家分月排行榜第二
2014年12月 总版技术专家分月排行榜第二
2014年9月 总版技术专家分月排行榜第二
Blank
红花 2015年3月 .NET技术大版内专家分月排行榜第一
2015年2月 .NET技术大版内专家分月排行榜第一
2015年1月 .NET技术大版内专家分月排行榜第一
2014年12月 .NET技术大版内专家分月排行榜第一
2014年11月 .NET技术大版内专家分月排行榜第一
Blank
黄花 2015年7月 .NET技术大版内专家分月排行榜第二
2015年6月 .NET技术大版内专家分月排行榜第二
2015年5月 .NET技术大版内专家分月排行榜第二
2014年10月 .NET技术大版内专家分月排行榜第二
2014年9月 .NET技术大版内专家分月排行榜第二
2014年8月 .NET技术大版内专家分月排行榜第二
Bbs10
本版专家分:136696
Blank
微软MVP 2014年10月 荣获微软MVP称号
2013年10月 荣获微软MVP称号
2012年10月 荣获微软MVP称号
Blank
蓝花 2009年2月 .NET技术大版内专家分月排行榜第三
Bbs12
本版专家分:411010
版主
Blank
名人 2014年 荣获名人称号
2013年 荣获名人称号
2012年 荣获名人称号
Blank
状元 2013年 总版技术专家分年内排行榜第一
Blank
探花 2014年 总版技术专家分年内排行榜第三
Blank
进士 2012年 总版技术专家分年内排行榜第四
Bbs7
本版专家分:19221
Bbs6
本版专家分:5031
Bbs7
本版专家分:18547
请教DLL的调用问题
我的程序需要使用一个别的程序的<em>dll</em>文件,请问我怎么使用,以及在哪里声明,谢谢了。
请教:DLL的调用问题
我在VC++中写了一个DLL,其中一个导出函数的参数是一个指针。rnrn请问在VB中如何传参?
请教调用dll问题
各位老大,我用静态引用的方式<em>调用</em>vc的<em>dll</em>,编译时出现如下错误:rn[Linker Error] Unresolved external 'rtss_code_proc_snd' referenced from D:\梅州测试\MZ_SERVER.OBJrn我的函数定义声明如下:rnextern "C" __declspec(<em>dll</em>import) _stdcall bool rtss_code_proc_snd(char *ps_dest_str,int *pi_dest_str_len,char *ps_orig_str,int i_orig_str_len,int i_decrypt_flag,char *ps_master_key);rn请问该如何解决。
delphi多线程调用dll
delphi多线程<em>调用</em><em>dll</em> delphi多线程<em>调用</em><em>dll</em> 有点复杂
关于多线程调用dll
有一个DLL里面有部分变量是全局变量, 如果我用多个线程去访问或修改这个全局变量那么这个变量会不断的改变, 我想实现在多个线程<em>调用</em>这个变量的每个变量都是与当前的线程有关,不会影响到别的线程,就像多个进
dll出现内存溢出
我是这样做的,建立一个基于对话框的程序 然后将我所需要的函数变量设成全局变量 typedef void (*AddFunc)(int,BYTE); AddFunc _DlPortWritePortUc
C++实现的可以安全的暂停、继续、停止线程的封装类
在使用线程时,最麻烦的就是线程的同步控制,如暂停、继续、停止(包括暂停状态下)等。虽然微软提供了 SuspendThread、TerminateThread 等函数“似乎”可以完成这个功能,但如果你在代码里使用这些函数,则往往会遇到各种<em>问题</em>(比如SuspendThread时正好在CRT分配内存的锁中造成其他线程也跟着锁死,TerminateThread时资源未释放)等。 本人经过试验和总结,
请教DLL调用问题
求教!rn我在BCB中动态<em>调用</em>VC的DLL,代码如下:rnextern "C" __declspec(<em>dll</em>import) bool __stdcall ProcessImage(char* czFileNameS, char* czFileNameR1, char* czFileNameR2);rnextern "C" __declspec(<em>dll</em>import) bool __stdcall InitiImageDll(HDC handle);rnrnhand=LoadLibrary ( "ImageTT.<em>dll</em>" );rnif (hand)rn rn GetProcAddress ( hand, "InitiImageDll" );rn b=GetLastError();rn GetProcAddress ( hand, "ProcessImage");rn b=GetLastError();rn if (InitiImageDll( GetDC(hWnd)) )rn rn ProcessImage( "test.bmp", "1.bmp", "2.bmp");rn rn rnFreeLibrary(hand);rnrn在加入代码rnif (InitiImageDll( GetDC(hWnd)) )rn rn ProcessImage( "test.bmp", "1.bmp", "2.bmp");rn rn后出现link error:Unresolved external 'InitiImageDll' referenced from D:\bcb\unit2.obj
请教dll调用问题
1、<em>调用</em>前是否需要注册,我用regsvr32注册后会报错,在vb中无法引用,应该怎样注册。注册以后在程序中声明就行了吗?rn2、如果原来函数参数譬如定义如下:char * aaa,我们用vb应该怎样引用char *这种类型?rn谢了!!
一事不明,请教!(dll调用另一个dll问题
写了一个小程序,我在dpr中动态<em>调用</em>A.<em>dll</em>,其中的A.<em>dll</em>又动态<em>调用</em>了B.<em>dll</em>,编译能通过。运行就报错。对A.<em>dll</em>跟踪运行,错误信息停留在LoadfromLibrary(B.<em>dll</em>)上,说是EInoutError "File Not Found"。请问是什么原因造成的?怎样才能改正这个错误!谢了
请教JAVA调用DLL问题
我的程序如下: rnpackage DLL; rn rnpublic class AAA //AAA为定义的类名 rn rn static rn rn System.loadLibrary("BBB"); //BBB为要<em>调用</em>的DLL rn rn rn public native static void CCC(); //CCC为要<em>调用</em>的函数 rn rn public static void main(String[] args) rn rn CCC(); rn rn rn rn编译然后出现如下<em>问题</em>: rnException in thread "main" java.lang.UnsatisfiedLinkError: CCC rn at DLL.AAA.CCC(Native Method) rn at DLL.AAA.main(AAA.java:15) rn rn<em>请教</em>各位大侠,应怎么解决呢?谢谢!
C++ XThread(多线程动态库)
封装动态库
使用C++封装互斥锁的实践
使用C++封装互斥锁的实践代码如下所示:/***********************/ // 完成互斥锁类的封装C++ // @file mutexLock.cc /***********************/#include #include #include #include using
C++多个线程调用同一个dll中的一个函数,怎么知道有多少个线程同时进入了这个函数体
C++多个线程<em>调用</em>同一个<em>dll</em>中的一个函数,但是要求这个函数同一时刻只能被有限个线程<em>调用</em>。因为这个函数使用了一些有限资源,当资源不够时,希望该函数直接返回。<em>dll</em>函数是用“C”方式导出的。抱歉,没多少
急,请问在DLL中怎么使用多线程
现在我的情况是这样的,我使用DLL的一个过程去操作一个程序后,弹出的窗体是模式对话框,这样的情况下就会阻断后面的操作。 请问有什么办法可以弹出窗体后再进行后面的操作吗? 急急急急急急急急!!!
关于多线程调用C++ DLL
用C++写了个DLL给C#<em>调用</em>,DLL中导出了多个函数,但这些函数是完全独立的,不存在任何数据交换, 用单进程单线程或多进程单线程<em>调用</em>,没有任何<em>问题</em>。但如果用单进程多线程或多进程多线程<em>调用</em>,就会报错“
请教一个dll调用问题
应用程序A动态链接<em>dll</em> B,C. B,C都有导出方法FunA。问A中<em>调用</em>FunA时是<em>调用</em>那个DLL的。
请教关于调用dll问题
向大家<em>请教</em>一个<em>问题</em>,我现在有一个<em>dll</em>,不知道用什么写的,但是知道他的一个方法,我要<em>调用</em>它,我用的是vb。net,winform<em>调用</em>。本来我是想直接在引用中添加引用,但是不让我添加,请问具体应该怎么做?这个<em>dll</em>是好的,我在delphi中成功<em>调用</em>了
请教调用dll的一个问题
我用VB.Net编写了一个动态连接库(含<em>dll</em>和tlb文件),请问在VC++6.0下该如何<em>调用</em>?rn谢谢!
请教:JNI调用dll问题
要用java <em>调用</em>别人提供的一个<em>dll</em>动态链接库BaraingApplyV2.<em>dll</em>中的一个函数int Init(const char * Data1,char * retMsg,char* Data2),我在网上查了好多关于jni方面的资料,发现其中最重要的就是要用c++写一个中间DLL,在这个中间<em>dll</em>中再去<em>调用</em>BaraingApplyV2.<em>dll</em>中的函数rn我没学过c++,所以想<em>请教</em>大家:c++中怎么去<em>调用</em>BaraingApplyV2.<em>dll</em>中的函数int Init(。。。)rnrnJNIEXPORT jint JNICALL Java_HelloDll_f_Initrn(JNIEnv * env, jclass, jstring data1, jstring retMsg, jstring data2)rnrnrnrn
请教:JNI调用DLL问题
我要用JNI<em>调用</em>VC++写的DLL(MyNative.<em>dll</em>), MyNative.<em>dll</em>中又要<em>调用</em>dephi写的DLL(mjSDKDLL.<em>dll</em>)rn#include rn#include rn#include "MyNative.h"rn#include "windows.h"rn#include rnrnJNIEXPORT void JNICALL Java_MyNative_HelloWord (JNIEnv *env, jclass jobject) rnrn printf("hello word!\n");rnrnrnrnJNIEXPORT jstring JNICALL Java_MyNative_cToJava(JNIEnv *env, jclass obj, jstring strTime) rnrn HINSTANCE hDLL; rnrn hDLL = LoadLibrary("mjSDKDLL.<em>dll</em>"); rn rn if (hDLL != NULL) rn rn printf("good %d\n", hDLL); rn rnelsern rn printf("bad\n");rn rnrn//typedef bool(*IFInitInterface)(int a,int b,LPCTSTR c);rnrn typedef int(FAR __stdcall *pMin)(int a);rn// typedef int (FAR __cdecl *pMin)(int);rn//typedef int (*pMin)(int port);stdcallrn pMin myproc = NULL;rnrn myproc = (pMin)GetProcAddress(hDLL,"InitlComm");rnrn if(myproc == NULL) rn rn printf("can't find function \n");rnrn else rnrn //myproc(1);rn rn rn rn FreeLibrary(hDLL);rnrn return jstr;rnrnrn
hiredis的c++封装, 线程安全
hiredis的c++封装, 线程安全, 提供对键值对、队列、散列、集合结构的读写
【C++】多个类的DLL封装及调用
网上大多是将函数封装成<em>dll</em>的教程,类的封装也是基本相似的。 创建DLL 在VS2010中新建一个win32-&amp;gt;<em>dll</em>工程。如我建立的工程名为FaceDLL 添加face<em>dll</em>.h的头文件(里面定义<em>dll</em>的接口,<em>调用</em>时会用到) #pragma once #ifdef FaceLIBDLL #define FACEAPI _declspec(<em>dll</em>export) #else #de...
多线程中能使用同一个dll吗?
创建很多的线程之后,能在每个线程中能各自单独的<em>调用</em>同一个<em>dll</em>吗?且使用起来是否会有冲突?
多线程同时调用C++ DLL
多线程同时<em>调用</em>C++ DLL就挂掉了,单线程<em>调用</em>时很正常。 诸位C++高手请帮忙。 该C++ DLL是在C#创建的WCF服务中<em>调用</em>的,用于访问实时数据库,实时数据库只提供了C++的接口。
多线程调用DLL函数(带非静态类成员函数指针)
现在我主要遇到的<em>问题</em>:主程序需要<em>调用</em>一个DLL函数,但是DLL函数里面又需要使用主程序中类的一个成员函数,所以尝试将成员函数指针作为参数传到DLL函数中,但是发现无法在多线程环境下执行。因为使用了通过
请教!!! Dll中调用dll问题
我在一新创建的普通Win32 Dll中使用xxx.h和xxx.lib文件隐含<em>调用</em>一个老的Win32 Dll yyy.<em>dll</em> 中的几个函数,在编译时报错如下:rnrnxxDlg.obj : error LNK2001: unresolved external symbol "short __cdecl LoadRule(void)" (?LoadRule@@YAFXZ)rnrn不知是什么<em>问题</em>?怎样解决?rn请指教!谢谢!
请教高手Dll调用问题!!!
我的导出函数声明为:rnCString __stdcall GetCommWDataBaseName()rnrn AFX_MANAGE_STATE(AfxGetStaticModuleState());rn return "buf";rnrn在.def中的定义是:rnGetCommWDataBaseName ?GetCommWDataBaseName@@YGDZrn但是<em>调用</em>时出错,请问怎么解决???rn CString s;rn static HINSTANCE hinstDLL2; rn typedef BOOL (CALLBACK *inshook)(); rn inshook instkbhook;rnrn hinstDLL2 = LoadLibrary((LPCTSTR) "GetDBInfo.<em>dll</em>"); rn if( hinstDLL2 == NULL )rn MessageBox( "不能取得载入模块。文件GetDBInfo.<em>dll</em>没有找到。" );rn return;rn rnrn instkbhook = (inshook)GetProcAddress(hinstDLL2, "GetCommWDataBaseName"); rn s = instkbhook();rn谢谢!!!
请教vb调用dll问题
<em>dll</em>是用C写的,如果里面有用到它自己定义的数据类型而不是通用的如long,int等,我是否还要加入它定义类型的声明?rn比如它定义了rnPublic Type conn_descrn sock As Longrn seq As Longrn status As Longrn act_flag As ByternEnd Typern我引用时不加入conn_desc的类型定义,如下rnPublic Declare Function cmpp_connect_to_ismg Lib "......" (Byval host As String, Byval port As Long, Byref conn As conn_desc) As Longrn编译时会报错:用户定义的类型没有定义rnrn如果有些类型我们不知道它<em>dll</em>自己定义时怎么声明的怎么办?rn
请教一个DLL的调用问题.
我从网上下载了一个得到硬盘ID的DLL,它其中对DELPHI<em>调用</em>是这样说明的:rntype mychar=array[0..31] of char;rntype TDiskID32=Function(var DiskModel,DiskID:mychar):BOOL;stdcall;rnrn请问,这样的说明该怎么<em>调用</em>?谢谢!
调用DLL文件的问题请教
我直接用文本编辑器写了个DLL文件test_<em>dll</em>.<em>dll</em>;rnlibrary test_<em>dll</em>;rnusesrn SysUtils,rn Dialogs,rn Classes;rnrnfunction sum(aaa:integer):integer;stdcall;rnbeginrn result:=aaa+10;rnend;rnrn$R *.resrnexportsrnsum;rnbeginrnend.rnrn用DELPHI来<em>调用</em>;rnunit Unit1;rnrninterfacernrnusesrn Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,rn Dialogs, StdCtrls, Buttons, Mask;rnrn function sum(aaa:integer):integer;stdcall;external 'test_<em>dll</em>.<em>dll</em>';rnrntypern TForm1 = class(TForm)rn MaskEdit1: TMaskEdit;rn SpeedButton1: TSpeedButton;rn procedure SpeedButton1Click(Sender: TObject);rn privatern Private declarations rn publicrn Public declarations rn end;rnrnvarrn Form1: TForm1;rnrnimplementationrnrn$R *.dfmrnrnprocedure TForm1.SpeedButton1Click(Sender: TObject);rnvarrn bbb:integer;rnbeginrn bbb:=strtoint(MaskEdit1.text);rn MaskEdit1.Text:=inttostr(sum(bbb));rnend;rnrnend.rnrnrn程序很简单,但运行的时候报错,说说什么 ACCESS VIOLATION AT…… rn运行编译出的程序提示为DLL为无效的windows印象! (注:DLL和程序放在一个目录下)
如何用C++把一个ActiveX控件(.ocx)封装成DLL
在C#里很容易做到,建立一个类库工程,添加一个Form,在Form中添加ActiveX控件,在类库中使用这个控件的实例就可以封装成<em>dll</em>了(代理的),我想知道如何在C++(MFC)环境中封装一个.oc
如何把DLL封装为COM组件供C++程序调用
需要将C#部分的接口提取出来,导出到COM,然后C++通过COM来<em>调用</em>它。 using System; using System.Runtime.InteropServices; namespace ClassLibrary1 { [ComVisible(true)] [Guid(“F3528A0F-D34F-4A5B-9849-0DCAD6212D5A”)] public interface M...
将QT开发的界面程序封装成DLL,在VC中成功调用
最近手头的一个项目需要做一个QT界面,并且封装成DLL,然后再动态<em>调用</em>DLL给出的接口函数,使封装在DLL内部的QT界面跑起来,在网上查了很多资料,今天终于成功了,经验不敢独享,因为CSDN给了我很多
C++ Socket封装
TC_Socket是一个socket的封装类,封装了socket的处理,该封装类的主要操作功能包括 生成socket,根据指定的socket类型,<em>调用</em>socket系统<em>调用</em>,并进行异常处理,如果sock存在,则先关闭,打开新的描述符。 void TC_Socket::createSocket( int iSocketType, int iDomain) {     assert (i
C++调用多线程DLL,多线程调用回调函数
【情景】 在C++代码中要<em>调用</em>C++编写的<em>dll</em>中的一个函数,并传递一个回调函数(很明显,这里应该传递一个委托),C++函数在内部通过一个额外的线程在后台运行,完成工作后通过这个回调函数通知前台的C++代码。。。。 【<em>问题</em>】 在经过很长时间的混合调试后发现,回调函数(也就是C++中传递的委托)能顺利被<em>调用</em>,然后返回C++代码,然后vs就会提示缓冲区溢出或者堆栈之类的错误,程序崩溃。如果不是单...
请教高手:DLL调用问题
我用VB6.0编写了一个通用的字符替换DLL,可被其它语言引用。声明如下:Public Declare Function THstring Lib "D:\Supper\ThChar.<em>dll</em>" (ByVal strName As string, ByVal strA As string,ByVal strB as string) As string,用字符strA替换strName中的所有字符strB。<em>调用</em>如下:a=THString(S,"-","6"),<em>调用</em>后程序立即终止。是哪个地方出错?
vc++ DLL调用问题请教
C#rnrn[DllImport("vc.<em>dll</em>")]rnString sname = "1234";rnpublic static extern IntPtr fun(IntPtr sname);rnfun(Marshal.StringToHGlobalAnsi(sname));rnrnrnVC++ <em>dll</em>rnrnint fun(int sname)rnrn请问 vc++ <em>dll</em> 这怎么写才获得 C# sname 的字符串"1234"rn
有关DLL调用问题请教
本人在几天前用VC 6.0做了一个DLL库,可是怎么也不能拿到里面函数的指针,请各位有经验的高手帮忙,先谢谢了。rnrn<em>问题</em>:rn用VC 6.0集成开发环境NEW一个DLL Project,简单按照里面的例子做了一个函数,用dumpbin 检查该DLL,可以看到有该函数的导出;rn然后再NEW一个最简单的基于对话框的Project,通过对话框上的一个Button来动态载入上面做好的DLL,具体代码如下:rnHINSTANCE h = LoadLibrary("DLL Project name");rnpFunction pfun = (函数指针类型转换)GetProcAddress(h,"Function name");rn在用Debug跟踪该段代码运行过程中发现 h 是有正常值的,而执行到取函数指针这一步时却没有能够拿到函数指针。rnrn
Java调用DLL问题请教
我已经有一现成的DLL,要在Java中<em>调用</em>它。rn但只知道它的接口函数而不知道源码,所以打算<em>调用</em>现有DLL的函数编一个供Java<em>调用</em>的DLL,不知能否实现,如何做?
C++ 封装DLL遇到的一些坑爹问题与解决方案
一.string类型不兼容 这个算是最常见也是最初级的<em>问题</em>了,为了方便跨语言接口<em>调用</em>,如果数据量不是特别大的话,我们可以在封装DLL时选择json串来作为方法的引入参数和返回值,但由于C++的string类型(其实是STL)内存分配器兼容性很滑稽,基本上跨平台<em>调用</em>就一定会出现异常。所以要避免在动态库接口中传递STL容器。 解决方案: 比较常规的方法是使用char *进行指针传递,但同时有会存...
在C++的类中封装多线程
在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static 在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static ! 在C语言中,我们使用pthread_create创建线程,线...
dll中多线程处理vector
在<em>dll</em>中开启多线程并处理vector(互斥),平台为vs2010,x64可以直接调试,可以传入函数指针,并且显示处理进度,可以根据需要修改。
C++编程之一:封装socket连接dll
#include &quot;WinSock2.h&quot;#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;string&amp;gt;using namespace std;#define LRDLLTEST_API __declspec(<em>dll</em>export)extern &quot;C&quot; LRDLLTEST_API int ReceiveData(unsigned int m_DataSocket, c...
多个类封装dlldll与lib
介绍: 转载:http://www.cnblogs.com/lancidie/archive/2011/03/12/1982253.html
请教c#调用dll问题
<em>dll</em>的声明是这样的rnstring fun (string a,string b,int c,ref d)rnrn请问我在c#中该如何<em>调用</em>rn
请教C++ DLL 调用问题
高手好:rn 我现在手头有第三方的C++ 类库,一共有两个文件夹,一个里面为openldap.<em>dll</em>文件和openldap.lib ,一个文件夹里面为.h头文件,请问我可不可以<em>调用</em>这个openldap.<em>dll</em>,我怎样才能查到里面的函数(不知里面的函数结构,只有头文件)?rn
java调用dll问题请教!!!
<em>调用</em>某个<em>dll</em>(下载的应该不会错)中的函数SendSms(),rn JavaSms MyDLL = new JavaSms();rn Result = MyDLL.SendSms();rn出现如下错误rnjava.lang.UnsatisfiedLinkError: SendSmsrn at sms.JavaSms.SendSms(Native Method)rn at _jsp._sms__jsp._jspService(/sms.jsp:12)rn at com.caucho.jsp.JavaPage.service(JavaPage.java:75)rn at com.caucho.jsp.Page.pageservice(Page.java:571)rn at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:155)rn at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:214)rn at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:177)rn at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:221)rn at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:263)rn at com.caucho.server.port.TcpConnection.run(TcpConnection.java:333)rn at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:464)rn at com.caucho.util.ThreadPool.run(ThreadPool.java:408)rn at java.lang.Thread.run(Thread.java:534)rn请问是什么原因,如何解决rnrn--------------------------------------------------------------------------------rn
请教关于dll调用问题
各位大侠大家好,小生第一次前来提问,希望多多关照。我的<em>问题</em>是:在一个<em>dll</em>中如何<em>调用</em>另一个<em>dll</em>中的函数?我要开发一个<em>dll</em>程序,中间想要<em>调用</em>另一个<em>dll</em>中的函数,却不知如何<em>调用</em>,看到的资料中只是讲在应用程序中<em>调用</em><em>dll</em>,请高人指点,不胜感激!
请教vs2010调用DLL问题
rn在vs2010,建立一个win32项目的默认<em>dll</em>工程,并把相关的.cpp文件改为.c文件后,rn编译可以成功rn但是建立一个MFC单文档项目,再<em>调用</em>这个<em>dll</em>中的测试函数,链接时报错:rnerror LNK2019: 无法解析的外部符号 "int __cdecl mytest(void)" (?mytest@@YAHXZ)rn工程属性中的 <em>调用</em>约定 都是为 __cdecl (/Gd)rn将<em>dll</em>工程中的 .c文件再改名回 .cpp就可以编译成功, 请问是怎么回事呢?rn而由于需要移植的开源代码都是.c文件,所以要建一个c的<em>dll</em>,需要怎么解决这个<em>问题</em>?
如何编写线程安全的DLL
在我的工作中经常会编写DLL,这些DLL有个共同的特点就是都有一个初始化函数,一个资源释放函数,其他几个函数都是核心功能函数。而且这些DLL有时会被多个进程同时<em>调用</em>,这就牵扯到多进程的多线程<em>调用</em>DLL的<em>问题</em>。有点绕口,以下我根据我实践中遇到的<em>问题</em>,分四种情况分享一下我解决此类<em>问题</em>的经验:1、动态库只有一个导出函数。这种情况非常少,也是最容易处理的情况。这种情况下编写函数时,只需要考虑不要有
线程加载DLL RtlCreateUserThread
使用RtlCreateUserThread创建的线程一切正常, 但是在创建的线程中<em>调用</em>WSAStartup总是失败(错误ID:10106, 说明:无法加载或初始化请求的服务提供程序。), 如果在创建的
C# 新线程里面无法调用DLL中的方法,DLL是引用第三方的
大家好: 我是一名C#初学者,在学习过程中遇到一个<em>问题</em>,请大家帮忙指点,<em>问题</em>描述如下: 建立了一个窗体应用程序的项目,引用了第三方的DLL文件,在主程序中<em>调用</em>DLL中的方法没有<em>问题</em>,但是在新开的线程里
在线程中注入dll后无法调用其回调函数的问题
该DLL在我使用普通客户程序加载后 hook的情况十分正常 但我将其注入其他进程进行<em>调用</em>时 根据测试 发现无法进入回调 其代码如下: // Inject.cpp : Defines the entry
C++多线程调用DLL运行问题
有两个DLL,A和B,A在运行时会<em>调用</em>B,B的作用主要是做解析并返回结果给A,例如:Temp=$Temp1+$Temp2,假设Temp1=a,Temp2=b,则B处理的结果是Temp=a+b=ab(字
请教,DLL的调用的符号链接问题
1、我编写了一个DLL,设置<em>调用</em>方式为:__stdcall,函数如下:rn[code=C/C++]rnextern "C"rnrnint add(int a, int b)rnrn return (a+b);rnrnrnrn[/code]rnrn2、编写一个DEF文件,导出符号:rn[code=Assembly]rnLIBRARY my<em>dll</em>rnEXPORTSrn add @1rn[/code]rnrn3、编写测试程序,<em>调用</em>方式为缺省值:__cdecl,函数如下:rn[code=C/C++]rnrn#pragma comment(lib,"my<em>dll</em>.lib")rnrnextern "C" rn int add(int a, int b);rnrnrnint main(int argc, char* argv[])rnrn int ret = 0;rn ret = add(100, 200);rn printf("%d", ret);rn return 0;rnrnrn[/code]rnrn很不幸,my<em>dll</em>.<em>dll</em>中的符号为all,但是,链接的时候,发现符号找不到:unresolved external symbol _addrn编译器多加了一个下划线。rnrn请问高手,如果解决呢?rnrn我不想使用 __declspec(<em>dll</em>export) 之类的关键字,不方便。rnrn __declspec(<em>dll</em>export) 和def文件导出符号,是有区别的。rn
菜鸟请教dll调用问题
[b]学习需要,本人刚接触C++ Builder。rn最近在学<em>dll</em>。在动态链接Dll时,编译没错误,在运行的时候出现了这样的错误。rn求解释。大恩不言谢。[/b]rnProject XXX.exe raised exception class EAccessViolation with message 'Access Violation at address00000000.rn......................
请教 C# 调用DLL的问题
libvlc_media_track_info_t Struct Referencern [LibVLC media] rnrn rnrn Data Fields rnrnuint32_t i_codec rnint i_id rnlibvlc_track_type_t i_type rnint i_profile rnint i_level rnunion rn struct rn unsigned i_channels rn unsigned i_rate rn audio rn struct rn unsigned i_height rn unsigned i_width rn video rn rnrnrnLIBVLC_DEPRECATED LIBVLC_API int libvlc_media_get_tracks_info (libvlc_media_t *p_md, libvlc_media_track_info_t **tracks)rnrn请问怎样<em>调用</em>libvlc_media_get_tracks_info 接口获取 tracks
请教DLL封装调用问题
刚开始学习VC++,现在想封装一个DLL文件(<em>dll</em>test.<em>dll</em>),按这个文章完成的!rnhttp://wenku.baidu.com/view/67b0f6d576eeaeaad1f33056.htmlrn现在的<em>问题</em>是,我使用VC++2012 生成了这个DLL文件(<em>dll</em>test.<em>dll</em>)rn我在VS2012下创建了一个工程<em>调用</em>刚刚生成的DLL文件内部函数来测试一下,但是提示"无法启动此程序,因为丢失了<em>dll</em>test.<em>dll</em>文件..."rnrn也是在VS2012下生成的<em>dll</em>文件,在VC++6.0下<em>调用</em>能正常使用!为是为什么啊?rn不好意思,新人,分太少了!请坛友们帮我解答一下!谢谢了!rnrn[color=#0000FF]<em>dll</em>test.hrnrn#ifndef DLLTEST_Hrn#define DLLTEST_Hrnrn#ifdef DLLTest_APIrn#define DLLTest_API extern "C" _declspec(<em>dll</em>export)rn#elsern#define DLLTest_API extern "C" _declspec(<em>dll</em>import)rn#endifrnrn DLLTest_API int add(int x,int y);rn DLLTest_API int subtract(int x,int y);rnrn#endif[/color]rnrnrn[color=#FF0000]VC++ 2012下main函数rn#include "stdafx.h"rn#include "<em>dll</em>test.h"rnrn#pragma comment(lib,"<em>dll</em>test.lib")rnint _tmain(int argc, _TCHAR* argv[])rnrn int s;rn s=add(5,5);rn return 0;rn[/color]rnrnrn[color=#FF00FF]VC++ 6.0下main函数rn#include "stdafx.h"rn#include "<em>dll</em>test.h"rnrn#pragma comment(lib,"<em>dll</em>test.lib")rnint main(int argc, char* argv[])rn int s;rn s=subtract(100,5);rn printf("Hello World! %d \n",s);rn return 0;rn[/color]rnrn
请教dll文件调用问题
我想在执行存储过程时显示进度条,我从网上下载了一个进度条例子,包含MessageBox.DLL、msgbox.pbl、SETUP.AVI三个文件,例子中是这么用的:打开:OpenBox("setup.avi","提示信息.....") 关闭:DelBox()。例子程序运行正常。rnrn但在我的程序中<em>调用</em>OpenBox函数显示函数不存在,我看不出例子程序中对MessageBox.DLL是怎样声明的。rn请各位帮帮忙!
dll的多进程多线程安全的几种策略
1、动态库只有一个导出函数。 这种情况非常少,也是最容易处理的情况。这种情况下编写函数时,只需要考虑不要有冲突的全局数据就可以了。这里的全局数据包括了在堆中分配的数据块和静态全局变量等。如果存在这样的全局数据,那么进程中的不同线程访问这个函数就会造成冲突。 解决办法也很简单,就是尽量用堆栈(stack)来解决<em>问题</em>。由于堆栈的所有人是线程,所以它必然是线程安全的。当然也要注意避免堆栈溢出
Java 多线程调用 C++ dll
   前段时间到一个公司工作。在工作期间,需要给公司解决一个java<em>调用</em><em>dll</em>的<em>问题</em>,该公司以前的java掉用<em>dll</em>存在一个多线程的<em>问题</em>。经过一天多的思考和分析。得出解决办法。以下是我对这个<em>问题</em>的一些想法。     1。 该<em>dll</em>中定义了许多全局变量,并且每回要<em>调用</em><em>dll</em>时都要根据<em>调用</em>端的情况来初始化这些全局变量。所以当多线程<em>调用</em>时,就会出现数据混乱。因为全局变量在一个进程中是共享的。
多个线程调用一个dll的同一个接口
程序加载了一个<em>dll</em>,之后该程序的多个线程<em>调用</em>一个<em>dll</em>的同一个接口。 一个线程<em>调用</em><em>dll</em>的这个接口之后,这个接口还没有返回,另一个个线程又<em>调用</em>了这个接口,那么<em>dll</em>中,是处理怎么第二个<em>调用</em>的?是让第
多线程调用dll
多线程<em>调用</em><em>dll</em>中的函数源码,值得初学者学习。
多线程中可以调用dll吗?
各位朋友,我在做了个程序,因为运算响应的<em>问题</em>,所以小弟不得不把对<em>dll</em>的<em>调用</em>放在线程中,<em>dll</em>中大致有init函数,getstat函数,close函数,这个<em>dll</em>是个设备厂商提 我现在主程序中先ini
多线程并行和并发
并行:同一时刻可以处理事情的能力。 并发:一段时间内可以处理事情的能力。 例如:食堂有八个窗口可以同时打饭,那么食堂的并行能力就是8; 食堂有八个窗口可以同时打饭,每个敞口一分钟内可以打十份饭,那么食堂的并发能力就是80。 ...
请教:VB.NET调用dll和VB调用dll问题
我在VC中写了一个导出函数:rnrnextern "C" __declspec(<em>dll</em>export)rnHRESULT Init(LPCSTR lpcsParam = NULL)rnrn...rnrnrn在VB.NET 中:rnrnImports System.Runtime.InteropServicesrnrn _rnPublic Function Init(ByVal lpcsParam As String) As IntegerrnEnd Functionrnrn<em>调用</em>Init可以成功。rnrn在VB6.0中:rnrnPrivate Declare Function Init Lib "example.<em>dll</em>" (ByVal lpcsParam As String) As Integerrnrn但在<em>调用</em>时报“DLL <em>调用</em>约定错误”。rnrn请问VC中导出函数的声明是否有<em>问题</em>呢?rn
多线程并行检索
有时候查找的时候数据量很大的时候,可以开几个线程一起查找,这样就可以加快查找的速度,用一个简单的例子进行说明。/************************************************************************/ /* 并行检索
多线程并行与退出
例1:进程与线程并行输出 #include #include #include #include //线程函数入口 void *thread_routine(void *arg) { printf("I am a thread, my thread id is : %d\n", pthread_self()); int i; for ( i = 0; i <
DLL调用环境问题请教
我用VF写了一个DLL,用Delphi<em>调用</em>。rn在装了VF的环境下<em>调用</em>运行正常,脱离VF环境并把VFP6RCHS.DLL,VFP6R.DLL复制到EXE目录下运行就出错了。请高手指点。rn错误:DLL无法加载
java调用dll,是否可以多线程调用dll的方法?
-
多进程调用同一dll和多线程调用同一dll有什么区别
如题, 现有一第三方<em>dll</em>,用于读取数据,读取数据函数需要传递相应的地址参数,该地址代表不同的通讯设备 多进程<em>调用</em>:现在有一<em>dll</em>在程序目录下,同时开启多个程序,是不是就相当于多进程<em>调用</em>该<em>dll</em>?不同
DLL的多线程
VC++动态链接库编程之多线程 在DLL中可以处理多线程,WIN32对于多线程的支持是操作系统本身提供的一种能力,并不在于用户编写的是哪一类程序。即便是一个控制台程序,我们都可以使用多线程: #include #include void ThreadFun(void) { while(1) { printf( "this is new thread/n" ); Sleep( 100
多线程调用DLL
主程序里<em>调用</em>DLL是可以成功的, 但是线程中就不成功,DLL是用DEIPHI写的一个FTP下载的东东,里面就一个函数. 请问哪位大哥知道解决办法?
多线程调用dll,时不时出错
我<em>调用</em>一个验证码识别程序的<em>dll</em>来识别电话,同时开5个线程,不时地出错,并且停止全部线程及其父线程后,并sleep 200秒,再次<em>调用</em>,大部分时候还是出错! <em>调用</em>代码: hftClass.pic pi
请教asp.net调用dll
项目添加引用了DLLrnusing TLib;rnrnpublic class video:TLib.Capturernrn #region _DCapture 成员rn public short StartPre()rn rn throw new Exception("The method or operation is not implemented.");rn rnrn #endregionrnrn在PAGE_LOAD里我如何<em>调用</em>控件CAB的StartPre()事件?rn谢谢
请教调用dll参数传递
<em>dll</em>里面有个函数是这样写的rnrn registerErrorMessage(PFNERRORCALLBACK pfnErrorMessage);rnrn 其中PFNERRORCALLBACK 的定义是rnrn typedef void (*PFNERRORCALLBACK)(ERRORMSGTYPE, char*);rnrn ERRORMSGTYPE是一个枚举rnrn enum ERRORMSGTYPErn rn ERRORMSG_INFO,rn ERRORMSG_WARNING,rn ERRORMSG_ERROR,rn ERRORMSG_FATALrn ;rn 我使用vb<em>调用</em>该函数,vb中声明这样写rnrnDeclare Function registerErrorMessage Lib "B2BAPIDLL.<em>dll</em>" (ByVal pfnErrorMessage As Long) As Longrnrn回调函数这样写rnrnPublic Sub ErrorMessageCallback(enErrorType As ERRORMSGTYPE, lpszMsg As Long)rn Debug.Print lpszMsgrn Call Form1.UpdateErrorMessage(enErrorType, lpszMsg)rnEnd Subrnrn其中ERRORMSGTYPE为枚举结构rnrnPublic Enum ERRORMSGTYPErn ERRORMSG_INFOrn ERRORMSG_WARNINGrn ERRORMSG_ERRORrn ERRORMSG_FATALrnEnd Enumrnrn但是在调试的时候,每当我跟踪岛回调函数,想看enErrorType 变量值时,都会发送访问出错,我想问一下其中发生了什么事rn
新手请教DLL调用
希望说的详细点,最好从0开始,比如开始建立什么样的工程 头文件和CPP文件里要怎么写rnDLL文件已知 显式<em>调用</em>。最好能加我MSN(fishrd@live.com)指教,非常感谢。rn平台是VS2008 只要能<em>调用</em>DLL文件就可以 其它暂时不用rn重分送上
DLL动态库调用请教
我用VC,生成一个REGULAR <em>dll</em> using shared mfc DLL rn里面有这样的函数rnchar* fWrite(int nCom, char *str, int &strLength)rn用vc建立另外的新工程,<em>调用</em>该<em>dll</em>没有<em>问题</em>rnrn请问 我把这个<em>dll</em>库用于VISUAL FOXPRO6 有没有<em>问题</em>?
关于dll调用???请教
我是jsp的新手,最近老师要我们开发一些用户端程序,并给了一些<em>dll</em>接口函数,要我们利用这些接口跟后台进行操作!我对这些<em>dll</em>不懂,不知道在程序中怎么<em>调用</em>它(不会写有关他的jsp语句),能不能给我说明一下!最好能够举个例子!谢谢rn
关于多线程调用DLL~高手帮忙看看
BOOL WINAPI DllMain( HINSTANCE hinstDll, DWORD dwReason, PVOID lpReserved) { hSemaphore = CreateSem
并行调用dll问题
<em>请教</em>各位,我现在有一个算法用matlab封装成<em>dll</em>,但是执行速度太慢,所以想去并行<em>调用</em>此<em>dll</em>,但是用parallel.for执行时每次运行到<em>调用</em><em>dll</em>时却变成顺序执行,请问是哪里出现了<em>问题</em>。 网上
.net 服务多线程 调用非托管C++DLL 如何防止 服务崩溃?
-
c# 多线程调用dll出现错乱
手头一个项目,目标是轮询n台考勤机,实时获取打卡信息并处理,考勤机的二次开发包是一个<em>dll</em>,无源码,不清楚是否是线程安全的。我的做法是每台机器开一个线程轮询。每个线程按考勤机二次开发包说明先openn
求VC++ 程序 封装成支持C#多线程调用的DLL操作方法或资料!
求一实例程序即可,想知道怎么做的,相关资料实例均可 说明缘由:由于本人对VC并不是非常熟悉,在项目中目前遇到一个情况,使用别人做的<em>dll</em>和提供的demo代码,进行了VC第二次DLL封装,但是C#<em>调用</em>时
请教关于调用dll
现在我遇到的情况是有一个<em>dll</em>,给出的功能函数有几个的参数是回调函数,rn我要开发的系统是用vb写的,需要<em>调用</em>这几个函数,但是在声明那里我就不知道怎么rn声明这几个函数了(函数参数不知道怎么写),<em>请教</em>一下哪位大侠遇到过这样的情况rn或者哪位知道怎么在vb里解决这样的情况
dll调用dll问题
自己写了个顺序栈的<em>dll</em>,头文件定义int为Elemtype,就是栈内元素都是int。rn之后又写了个二叉树的<em>dll</em>,在遍历树节点的时候要<em>调用</em>栈的<em>dll</em>,我想用二叉链表的指针类型代替int型,就是遍历的时候压栈出栈都用指向二叉链表的指针。那应该怎么修改?
dll调用dll问题?
被<em>调用</em>动态库:mwrf32.<em>dll</em>rn<em>调用</em>mwrf32.<em>dll</em>的DLL:rnlibrary Unit<em>dll</em>;rnrnusesrn Unit1 in 'Unit1.pas';rnrn$R *.resrnexportsrn ReadCard;rnrnbeginrnend.rnunit Unit1;rnvarrn function rf_read(icdev:longint;adr:smallint;data:pchar):smallint;stdcall;rn far;external 'mwrf32.<em>dll</em>' name 'rf_read';rnrn function ReadCard: String; stdcall; export;rn rnimplementationrnrnfunction ReadCard: String;rnbeginrn //<em>调用</em>rf_read;rn ...rnendrnend.rn<em>调用</em>Unit<em>dll</em>的<em>dll</em>:rnunit Unit1;rnimplementationrnrn$R *.dfmrnfunction ReadCard:String;stdcall;far;external 'Unit<em>dll</em>.<em>dll</em>'name 'readcard';rnprocedure TForm1.Button1Click(Sender: TObject);rnvarrn kh: String;rnbeginrn kh:= ReadCard;rn if kh='' then ShowMessage('readcard faile')rn else ShowMessage('readcard success');rnend;rn在程序直接<em>调用</em>mwrf32.<em>dll</em>没<em>问题</em>,想改成程序<em>调用</em><em>dll</em><em>调用</em>mwrf32.<em>dll</em>,rn程序运行就出错,这样写不知对不对,第一次写请多多指教,谢谢rn
loadrunner11 破解包下载
安装好loadrunner11后 1)退出程序,把下载文件中的lm70.dll和mlr5lprg.dll覆盖掉..\HP\LoadRunner\bin下的这两个文件 2)注意,win7的话一定要以管理员身份运行启动程序,启动后,点击 configuration->loadrunner license,此时可能会有两个许可证信息存在,退出程序,点击deletelicense.exe文件,来删除刚才得许可证信息(即时原来没有lisense最好也运行一下) 3)再次打开程序, configuration->loadrunner license->new license,在弹出的输入框中输入l 相关下载链接:[url=//download.csdn.net/download/juanye11/4105130?utm_source=bbsseo]//download.csdn.net/download/juanye11/4105130?utm_source=bbsseo[/url]
基于单片机的虚拟示波器下载
基于单片机的虚拟示波器,基于单片机的虚拟示波器,基于单片机的虚拟示波器, 相关下载链接:[url=//download.csdn.net/download/hunhun5699/4513150?utm_source=bbsseo]//download.csdn.net/download/hunhun5699/4513150?utm_source=bbsseo[/url]
mysql乱码问题下载
如果你确定是插入数据库时乱码 而不是之前的数据就是乱码 我这有收藏解决MySQL乱码的解决方法 很多时候直接按照第三点更改就可以解决问题 如果解决不了...... 相关下载链接:[url=//download.csdn.net/download/u012554997/6456399?utm_source=bbsseo]//download.csdn.net/download/u012554997/6456399?utm_source=bbsseo[/url]
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池
我们是很有底线的