DLL函数接口说明

typedef void __stdcall (*fun_AddResult)(char pDataStr[10][255],double pDataDouble[100]); extern "C" void __declspec(dllimport) __stdcall SetBackColor(TColor pBkColor);extern "C" void __declspec(dllimport) __stdcall FanSelect(void *pSeriesNames,//系列名称YLDStr * (typedef struct{char Data[255];} YLDStr;) const int pSeriesNameCount,//系列名称个数,-1时表示全部选择void *pSubSeriesNames,//系列名称YLDStr * (typedef struct{char Data[255];} YLDStr;) const int pSubSeriesNameCount,//子系列名称个数,-1时表示全部选择const double &pFlow, //风量const int &pFlowUnitType, //风量单位类型0-m^3/h 1-m^3/s 2-l/s 3-cfmconst double &pPres, //风压const int &pPresUnitType, //风压单位类型0-Pa 1-mmH2O 2-kgf/cm^2 3-inH2Oconst int &pPresType, //风压类型0-全压1-静压const int &pOutFanType,//出风方式0-管道出风1-自由出风const double &pAirDensity,//空气密度const double &pMotorSafeCoff,//电机容量安全系数(%)const bool &pUserSetMotorSafeCoff,//用户设定了电机容量安全系数double &rFlow_STDUnit,//标准单位下的风量fun_AddResult pAddResult//函数指针,用于回传数据);extern "C" void __declspec(dllimport) __stdcall Belt_Selection(const char *pSeriesName,const char *pSubTypeName,const char *pModelName,const int &pSped_DataType,//电机转速类型0-标准数据1-用户数据默认为0(界面选择)const int &pHz_DataType,//频率选择0-50HZ 1-60HZ(界面选择)const int &pRotation,//出风旋转角度R0,R90,R180,R270(参考常量定义)const double &pFanSped,//风机转速(第一步计算得到)const double &pMotorPow,//电机功率(第一步计算得到)const double &pFlow_STDUnit,//标准单位下的风量const double &pTPres,//全压(第一步计算得到)const double &pSPres,//静压(第一步计算得到)const double &pFTEff,//全压内效率(第一步计算得到)const double &pSdbA,//噪声(第一步计算得到)const int &pV olt,//用户选择的电压(参考电压常量声明V380 V400) ,bool pPole[4],//用户选择的极数2,4,6,8bool pBeltType[4],//用户选择的皮带类型SPZ SPA SPB SPCconst bool &pBeSetFanSped,//用户设定了风机转速const double &pFanSpedRt_User,//用户设定的风机转速差const bool &pBeSetBeltMoveSped,//用户设定最大皮带运动速度const double &pBeltMoveSped_User,//用户设定的最大皮带运动速度const int &pUserSel_Distance,//用户的选择0-直接输入中心距(mm) 1-边距(mm)const double &pMargin,//边距(mm)const double &pCenterDistance,//中心距const double &pMotorSafeCof,//电机容量安全系数const bool &pUserSetMotorSafeCoff,//用户设定了电机容量安全系数const double &pFlow_STDSped,//标准转速下的风量(第一步选型结果,下标为46)const double &pMinL10,//轴承最小寿命fun_AddResult pAddResult//函数指针,用于回传数据);extern "C" double __declspec(dllimport) __stdcall CalAirDensity(const double &pB,//大气压力const double &pT,//空气温度const double &pV//相对湿度);extern "C" void __declspec(dllimport) __stdcall DrawCurvePic(const char *pSeriesName,const char *pSubTypeName,const char *pModelName,const char *pFileName,const double &pFlow,const double &pPres,const int &pWidth,const int &pHeight);//画皮带传动风机单转速曲线图extern "C" void __declspec(dllimport) __stdcall DrawSingleFanBySize(const char *pSeriesName,//系列名称const char *pSubTypeName,//子系列名称const char *pModelName,//型号名称const char *pFileName,//文件名称double pSped,//转速double pFlow,//风量(流量)double pDensity,//密度const int &pWidth,//图片宽度const int &pHeight,//图片高度const int &pFlowUnit,//风量单位const int &pPresUnit//风压单位);//画直联风机单转速曲线图extern "C" void __declspec(dllimport) __stdcall DrawDrectSingleFanBySize( const char *pSeriesName,//系列名称const char *pModelName,//型号名称const char *pMotorName,//电机名称const char *pFileName,//文件名称const double &pFlow,//风量(流量) 标准单位const int &pWidth,const int &pHeight,const int &pFlowUnit,//用户选择的风量单位0-标准单位const int &pPresUnit//用户选择的风压单位0-标准单位);extern "C" void __declspec(dllimport) __stdcall DirectFanSelect(void *pSeriesNames,//系列名称YLDStr * (typedef struct{char Data[255];} YLDStr;) const int pSeriesNameCount,//系列名称个数,-1时表示全部选择double &pFlow, //风量const int &pFlowUnitType, //风量单位类型0-m^3/h 1-m^3/s 2-l/s 3-cfmdouble &pPres, //风压const int &pPresUnitType, //风压单位类型0-Pa 1-mmH2O 2-kgf/cm^2 3-inH2O const int &pPresType,//风压类型0-全压1-静压const int &pHz_DataType,//频率选择0-50HZ 1-60HZconst int &pvoltage,//电压0-380 1-220const double &pResultDisData, //选型差值(小数0.1代表10%)const double &pAirDensity,//空气密度fun_AddResult pAddResult//函数指针,用于回传数据);。

合集下载

读卡接口rf_carddll.dll函数

读卡接口rf_carddll.dll函数
inmoney : integer;card_money : pchar) : integer
参 数: incom : 连接读卡器的串口,分别表示COM1到COM4(1..4)
user_code : 用户代码
下载卡参数动态库ReadCardParam.dll函数说明
1.GetParam()aram(UserCode:pchar;CardKey : pchar) : integer
参 数: usercode : 返回用户代码
-10:金额错误 是负数
-15:读卡金额错误
说 明: 此函数用来从用户的卡中扣钱。
举 例: code=rf_WriteCard(1,'12345678','1122334455667788','123456',200);
-5:读卡错误;
5.WtBinCard(): 写卡
用 法: code=function WtBinCard(incom : integer;user_code :pchar;card_key : pchar;Card_id : pchar;send:pchar) : integer;
参 数: incom : 连接读卡器的串口,分别表示COM1到COM4(1..4)
user_code : 用户代码
card_key : 卡密钥
card_id : 返回卡的唯一序列号
rcvdata :返回的16字节的卡数据
返回值: 返回值如下
0: 成功,返回16字节的卡数据;
-1:连接串口错误;
-2:没有发现卡片;
-3:无法读取卡的唯一序列号;
-4:装入密钥错误;

科密高拍仪DLL接口说明

科密高拍仪DLL接口说明

DLL接口说明/*--------------------------------函数功能:获取设备数目返回值:设备数目------------------------------------*/extern "C" _declspec(dllexport) int GetDeviceCount();/*--------------------------------函数功能:获取设备名称参数一:摄像头索引,0 ->主摄像头,1 ->副摄像头参数二:设备名称返回值:0 ->成功,其他->失败------------------------------------*/extern "C" _declspec(dllexport) int GetDeviceName(int index, char* nbuf);/*--------------------------------函数功能:获取设备的预览分辨率数目参数一:摄像头索引,0 ->主摄像头,1 ->副摄像头返回值:预览分辨率数目------------------------------------*/extern "C" _declspec(dllexport) int GetResolutionCount(int index);/*--------------------------------函数功能:获取指定索引的预览分辨率参数一:分辨率索引参数二:分辨率宽度参数三:分辨率高度返回值:0 ->成功,其他->失败------------------------------------*/extern "C" _declspec(dllexport) int GetResolution(int R_index, int &width, int &height);/*--------------------------------函数功能:打开设备参数一:摄像头索引,0 ->主摄像头,1 ->副摄像头参数二:分辨率宽度参数三:分辨率高度参数四:显示句柄参数五:是否显示,true->显示,false ->不显示返回值:0 ->成功,其他->失败------------------------------------*/extern "C" _declspec(dllexport) int OpenDevice(int index, int width, int height, HWND mhwnd, bool isDisplay);/*--------------------------------函数功能:关闭设备返回值:0 ->成功,其他->失败------------------------------------*/extern "C" _declspec(dllexport) int CloseDevice();/*--------------------------------函数功能:拍照参数一:图像保存路径参数二:是否条码识别返回值:图像路径------------------------------------*/extern "C" _declspec(dllexport) char* CaptureFromPreview(char *path, int isBarCode)/*--------------------------------函数功能:设置图片保存格式参数一:图片格式:0 ->jpg,1 ->bmp,2 ->png,3 ->tif,4 ->pdf返回值:无------------------------------------*/extern "C" _declspec(dllexport) void SetFormatType(int type);/*--------------------------------函数功能:设置JPG格式图片质量参数一:图片质量值(范围1-100),值越大,图片质量越好返回值:无------------------------------------*/extern"C"_declspec(dllexport) void SetJpgQuality(int val);函数功能:设置色彩模式参数一:色彩模式:0 ->彩色,1 ->灰度,2 ->黑白返回值:无------------------------------------*/extern "C" _declspec(dllexport) void SetColorType(int type);/*--------------------------------函数功能:设置裁边方式参数一:裁边方式:0 ->不裁切,1 ->自动裁切返回值:无------------------------------------*/extern "C" _declspec(dllexport) void SetCutType(int type);/*--------------------------------函数功能:视频旋转参数一: 0 ->0度,1 ->90度,2 ->180度,3 ->270度返回值:无------------------------------------*/extern"C"_declspec(dllexport) void SetRotateAngle(int angle);/*--------------------------------函数功能:实际大小参数:无返回值:无------------------------------------*/extern"C"_declspec(dllexport) void TrueSize(void);/*--------------------------------函数功能:适合大小参数:无返回值:无------------------------------------*/extern"C"_declspec(dllexport) void BestSize(void);/*--------------------------------函数功能:放大参数:无返回值:无------------------------------------*/extern"C"_declspec(dllexport) void ZoomIn(void);函数功能:缩小参数:无返回值:无------------------------------------*/extern"C"_declspec(dllexport) void ZoomOut(void);/*--------------------------------函数功能:去底色参数一: 0 ->不去底色,1 ->去底色返回值:无------------------------------------*/extern"C"_declspec(dllexport) void SetDelBgColor(int flag);/*--------------------------------函数功能:去黑边参数一: 0 ->不去黑边,1 ->去黑边返回值:无------------------------------------*/extern"C"_declspec(dllexport) void SetDelBlackEdge(int flag);/*--------------------------------函数功能:对焦参数: 0 ->不去黑边,1 ->去黑边返回值:0 ->成功,其他->失败------------------------------------*/extern"C"_declspec(dllexport) int ManualFocus();/*--------------------------------函数功能:条码二维码识别参数一: 0 ->识别条码,1 ->识别二维码参数二:识别结果返回值:0 ->成功,其他->失败------------------------------------*/extern"C"_declspec(dllexport) int RecogQrBarCode(int type,char * result);/*--------------------------------函数功能:设置DPI参数一: 0 ->默认DPI,1 ->自定义DPI参数二: DPI值返回值:0 ->成功,其他->失败------------------------------------*/extern"C"_declspec(dllexport) void SetDpi(int type, int val);/*--------------------------------函数功能:添加要合并的图片路径参数一:图片路径返回值:0 ->成功,其他->失败------------------------------------*/extern"C"_declspec(dllexport) int AddImagePath(char* path);/*--------------------------------函数功能:图片合并(与函数AddImagePath配合使用,最多支持四张图片的合并)参数一:图片合并的路径参数二:合并方向:0->垂直合并,0->水平合并参数三:合并图片之间的间隙返回值:0 ->成功,其他->失败------------------------------------*/extern"C"_declspec(dllexport) int MergeImages(char* desPath, int direction,int sp);/*--------------------------------函数功能:添加要合并PDF的文件路径参数一:文件路径返回值:0 ->成功,其他->失败------------------------------------*/extern"C"_declspec(dllexport) int AddImageFileToPDF(char* path);/*--------------------------------函数功能:合并PDF与函数AddImageFileToPDF配合使用)参数一: PDF合并路径返回值:0 ->成功,其他->失败------------------------------------*/extern"C"_declspec(dllexport) int CombineToPDF(char* desPath);/*--------------------------------函数功能:硬件参数设置参数:无返回值:0 ->成功,其他->失败------------------------------------*/extern"C"_declspec(dllexport) int ShowCameraSettingWindow(void);/*--------------------------------函数功能:获取视频参数参数一:视频参数ID:亮度= 0,对比度= 1,色调= 2饱和度= 3清晰度= 4伽玛= 5白平衡= 7增益= 9参数二:获取参数的最小值参数三:获取参数的最大值参数四:获取参数的默认值参数五:获取参数的当前值返回值:0 ->成功,其他->失败------------------------------------*/extern"C"_declspec(dllexport) int GetVideoProcParms(int ParmID,long &min, long &max, long &def, long &current) ;/*--------------------------------函数功能:设置视频参数参数一:视频参数ID:亮度= 0,对比度= 1,色调= 2饱和度= 3清晰度= 4伽玛= 5白平衡= 7增益= 9参数二:设置值返回值:0 ->成功,其他->失败------------------------------------*/extern"C"_declspec(dllexport) int SetVideoProcParms(int ParmID, int value);/*--------------------------------函数功能:获取相机控制参数参数一:控制参数ID:Pan = 0,Tilt = 1,Roll = 2,Zoom = 3,Exposure = 4Iris = 5,Focus = 6参数二:获取参数的最小值参数三:获取参数的最大值参数四:获取参数的默认值参数五:获取参数的当前值参数六:获取参数的控制方式(0 ->手动,其他 ->自动)返回值:0 ->成功,其他->失败------------------------------------*/extern"C"_declspec(dllexport) int GetCameraCotrolParms(int ParmID,long &min, long &max, long &def, long &current, long &flag);/*--------------------------------函数功能:设置相机控制参数参数一:视频参数ID:Pan = 0,Tilt = 1,Roll = 2,Zoom = 3,Exposure = 4Iris = 5,Focus = 6参数二:设置值参数三:控制方式(0 ->手动设置,1 ->自动设置)返回值:0 ->成功,其他->失败------------------------------------*/extern"C"_declspec(dllexport) int SetCameraCotrolParms(int ParmID,int value, int flag);/*--------------------------------函数功能:读取身份证参数:无返回值:0 ->成功,其他->失败------------------------------------*/extern"C"__declspec(dllexport) int ReadCard();/*--------------------------------函数功能:获取身份证信息参数一:信息索引值0->名字1->性别2->民族3->出生日期4->住址5->身份证号码6->签发机关7->开始有效日期8->结束有效日期9->头像照片文件路径返回值:身份证信息------------------------------------*/extern"C"__declspec(dllexport) char* GeCardInfo(int index);/*****************************1600W像素及以上机型接口***********************//*--------------------------------函数功能:获取设备的拍照分辨率数目参数一:摄像头索引,0 ->主摄像头,1 ->副摄像头返回值:预览分辨率数目------------------------------------*/extern "C" _declspec(dllexport) int GetStillResolutionCount(int index);/*--------------------------------函数功能:获取指定索引的拍照分辨率参数一:分辨率索引参数二:分辨率宽度参数三:分辨率高度返回值:0 ->成功,其他->失败------------------------------------*/extern "C" _declspec(dllexport) int GetStillResolution(int R_index, int &width, int &height);/*--------------------------------函数功能:打开设备参数一:摄像头索引,0 ->主摄像头,1 ->副摄像头参数二:分辨率宽度参数三:分辨率高度参数四:显示句柄参数五:是否显示,true->显示,false ->不显示返回值:0 ->成功,其他->失败------------------------------------*/extern "C" _declspec(dllexport) int OpenDeviceEx(int index, int width, int height, HWND mhwnd, bool isDisplay);/*--------------------------------函数功能:拍照参数一:图像保存路径返回值:0 ->成功,其他->失败------------------------------------*/extern "C" _declspec(dllexport) int CaptureFromStill(char *path)/*****************************纯录音播放接口***********************/ /*--------------------------------函数功能:开始录音参数一:录音保存路径(录音格式后缀为.wav)返回值:0 ->成功,其他->失败------------------------------------*/extern "C" _declspec(dllexport) int StartAudioRecord(char *path)/*--------------------------------函数功能:停止录音参数:无返回值:0 ->成功,其他->失败------------------------------------*/extern "C" _declspec(dllexport) int StopAudioRecord()/*--------------------------------函数功能:播放录音参数一:录音文件路径返回值:0 ->成功,其他->失败------------------------------------*/extern "C" _declspec(dllexport) int StartPlayAudio(char *path)/*--------------------------------函数功能:停止播放录音参数:无返回值:0 ->成功,其他->失败------------------------------------*/extern "C" _declspec(dllexport) int StopPlayAudio()。

车牌自动识别器DLL接口说明

车牌自动识别器DLL接口说明

车牌识别系统DLL软件开发对外接口使用说明书目录第一章HVDLL.dll接口概述 (2)第二章对外接口函数详细说明 (3)1. 单个设备连接接口函数 (3)1.1. OpenHv (3)1.2. CloseHv (3)1.3. CloseIP (4)1.4. HvIsConnected (4)1.5. SetHvCallBack (4)1.6. CARINFO_BEGIN_CALLBACK (5)1.7. CARINFO_ END _CALLBACK (5)1.8. PLATE_NO_CALLBACK (5)1.9. BIG_IMAGE_CALLBACK (6)1.10. SMALL_IMAGE_CALLBACK (7)1.11. BINARY _IMAGE_CALLBACK (7)1.12. VIDEO _CALLBACK (8)1.13. VIDEO _ HISTORY_CALLBACK (8)1.14. STREAM_CALLBACK (9)1.15. DEBUG_STR_CALLBACK (10)1.16. SearchHVDeviceCount (10)1.17. GetHVDeviceAddr (10)1.18. SetHvIPFromMac (11)1.19. Yuv2Rgb (11)1.20. Yuv2BMP (11)1.21. Yuv2Jpg (12)1.22. HV_ForceSend (12)1.23. HV_ForceSendEx (13)1.24. HV_ GetPlateInfo (13)1.25. HV_ ProcessUserData (13)1.26. HV_ GetHistoryVideo (14)1.27. HV_CombineTwoImagesToOneImage (14)1.28. HV_AntiTamper_Embed (15)1.29. HV_AntiTamper_Examine (15)1.30. SendTriggerOut (16)1.31. SetHvTime (16)1.32. GetHvTime (16)2. 视频检测器接口函数 (17)2.1. TRIGGERINFO_CALLBACK (17)2.2. HV_GetStatInfo (17)3. 主动连接接口函数 (18)3.1. OpenHvServer (18)3.2. CloseHvServer (18)3.3. CONNECT_EVENT (18)3.4. DISCONNECT_EVENT (19)3.5. SetHvServerEvent (19)第三章应用系统开发说明 (19)第四章HVDLL编程指南 (23)1 编写回调函数 (23)2 创建句柄 (23)3 设置回调 (23)4 Timer事件 (24)5 取消回调 (24)6 关闭句柄 (25)HVDLL.dll接口概述HVDLL.dll是我公司车牌识别系统的核心接口,负责从识别器接收识别结果和视频信息,是各种接收应用程序的底层接口。

怎么破解Dll文件,从中找出里面的函数和参数

怎么破解Dll文件,从中找出里面的函数和参数
:10001015 8B74240C mov esi, dword ptr [esp+0C]
:10001019 0FAF742410 imul esi, dword ptr [esp+10]
:1000101E 85C0 test eax, eax
还有一种调用方式:
有于该函数比较简单,没有参数的压栈过程,
里面的
esp+04就是第一个参数
esp+08就是第二个参数
。。。
esp+xx就是第xx/4个参数
你说看到的xx的最大数除以4后的结果,就是该函数所传递的参数的个数。
----------------------------------------------
1。先打开需要分析的DLL,然后通过菜单功能-》出口来找到需要分析的函数,双击就可以了。它可以直接定位到该函数。
2。看准该函数的入口,一般函数是以以下代码作为入口点的。
push ebp
mov ebp, esp
...
3。然后往下找到该函数的出口,一般函数出口有以下语句。
...
ret xxxx;//其中xxxx就是函数差数的所有的字节数,为4的倍数,xxxx除以4得到的结果
如果是字符串的话也是比较简单的,只要到那个地址上面去看一下就可以了。
如果传递的结构的话,没有很方便的办法解决,就是读懂该汇编就可以了。
另外由于编译器的优化原因,可能有的参数没有我前面说的那么简单。如果在该DLL的某个函数中,有关于API调用的话,
并且调用API的参数整好有一个或多个是该DLL函数的参数的话。那么就可以很容易的知道该DLL函数的参数了。
:1000102A 6A63 push 00000000

user32.dll 函数说明

user32.dll 函数说明

函数名称说明ActiveKeyboardLayout激活一个不同的键盘布局,该布局必须先由LoadKeyBoardLayout函数装载AdjustWindowRect根据希望的用户矩形大小来计算所需矩形窗口的大小,然后将该窗口矩形给CreateWindow函数,以创建所需的窗口AdjustWindowRectEx根据希望的客户矩形大小来计算具有扩展式样的窗口所需的矩形窗口大小,然后将该窗口矩形传给CreateWindow函数,以创建所需AnyPopupAppendMenuArrangeIconicWindowsAttachThreadInputBeginDeferWindowPosBeginPaintBringWindowToTopBroadcastSystemMessageCallMsgFilterCallNextHookExCallWindowProcCascadeWindowsChangeClipBoardChainChangeDisplaySettingsCharLowerCharLowerBuffCharNextCharNextExACharPrevCharPrevExACharToOemCharToOemBuff的窗口确定屏幕上是否存在未被拥有的、可见的、顶层弹出式或重叠式窗口在给定菜单的尾不增加新项在给定父窗口中安排最小化的子窗口将只线程的输入状态附加到其它线程上创建多窗口位置的数据结构,并为该结构返回一个句柄为绘图准备一个窗口将给定窗口放到屏幕Z序顶部发送一条消息给指定的接受器,这个接受器可被用于可安装驱动器、基于WINDOWS的网络驱动器、系统级设备驱动器或任何这些部件的组合将指定的消息和钩子代码传送给应用程序定义的回调函数,以便应用程序能够在对话框、消息框、菜单和滚动条进行内部处理或按ALT+TAB键激活另一窗口时,检查和控制消息流将给定的钩子信息传递给当前钩子链的下一个钩子过程将给定的消息传递给指定的窗口过程级联指定父窗口的指定窗口或子窗口从剪贴板查看程序链中去掉一个窗口改变指定图形模式的显示环境将一个字符或字符串转换成小写将字符串缓冲区内指定数目的字符转换成小写返回指向字符串中某字符的下一个字符的指针检取字符串中下个字符的指针返回字符串中某个字符的前一个字符的指针检取字符串中某个字符的前一个字符的指针将指定字符串转换到OEM定义的字符集中将字符串缓冲区中指定数目的字符转换成OEM定义的字符集中CharUpper将一个字符后字符串转换成大写CharUpperBuff将字符缓冲区中指定数目的字符转换成大写CheckDlgButton 通过对话框按扭改变一个选择标记CheckMenuItem通过菜单项改变一个选择标记CheckMenuRadioItem核对指定菜单项并作标记,同时去掉该组中其它菜单项的标记CheckRadioButton向组中给定圆按扭增加一个选择标志,并去掉该组中其它圆按扭的选择标志ChildWindowFromPointChildWindowFromPointExClintToScreenClipCursorCloseClipBoardCloseDesktopCloseWindowCloseWindowStationCopyAcceleratorTableCopyIconCopyImageCopyRectCountClipboardFormatsCreateAcceleratorTableCreateCartCreateCursorCreateDesktopCreateDialogIndirectParamCreateDialotParamCreateIconCreateIconFromResource CreateIconFromResourceExCreateIconIndirectCreateMDIWindowCreateMenuCreatePopupMenuCreateWindowExCreateWindowstationDdeAbandonTransaction确定包含给定点的子窗口确定包含给定点的子窗口将给定的用户坐标转换成屏幕坐标将光标限定在屏幕上给定的矩形区域内关闭剪贴板,以允许其它窗口访问该剪贴板关闭指定桌面对象的句柄最小化指定的窗口关闭一个打开的窗口站句柄拷贝指定的加速键表拷贝一个图标建立一个图象并拷贝指定图象的属性给它拷贝一个矩形坐标返回剪贴板当前不同数据格式的数目创建一个加速键表为系统插入符创建一个新形状,并且为给定窗口分配这个插入符的所有权用指定大小、位模式、热点创建一个光标在和调用过程相关的窗口站上创建一个新桌面从内存对话框模板中创建一个无模式对话框从对话框模板资源中创建一个无模式对话框用指定大小、颜色和位模式创建一个图标从描述图标的资源位中创建一个图标或光标从描述图标的资源位中创建一个图标或光标根据ICONINFO数据结构创建一个图标或光标创建一个多文档界面窗口创建一个菜单,然后用AppendMenu函数填充菜单项创建一个弹出式窗口,然后用AppendMenu函数填充菜单项用指定方式创建一个窗口创建一个窗口站对象。

DLL(动态链接库)详解

DLL(动态链接库)详解

DLL (动态链接库)详解动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL 是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。

动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。

函数的可执行代码位于一个DLL 中,该DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。

DLL 还有助于共享数据和资源。

多个应用程序可同时访问内存中单个DLL 副本的内容。

DLL 是一个包含可由多个程序同时使用的代码和数据的库。

目录定义DLL 的优点DLL文件损坏DLL 依赖项导出DLL 函数DLL错误的危害DLL修复方法定义DLL 的优点DLL文件损坏DLL 依赖项导出DLL 函数DLL错误的危害DLL修复方法展开定义通过使用DLL,程序可以实现模块化,由相对独立的组件组成。

例如,一个计帐程序可以按模块来销售。

可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。

因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。

此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。

例如,您有一个大型网络游戏,如果把整个数百MB甚至数GB的游戏的代码都放在一个应用程序里,日后的修改工作将会十分费时,而如果把不同功能的代码分别放在数个动态链接库(DLL)中,您无需重新生成或安装整个程序就可以应用更新。

下表说明了Windows 操作系统中的一些作为DLL 实现的文件:•ActiveX 控件(.ocx) 文件ActiveX 控件的一个示例是日历控件,它使您可以从日历中选择日期。

•控制面板(.cpl) 文件.cpl 文件的一个示例是位于控制面板中的项。

每个项都是一个专用DLL。

•设备驱动程序(.drv) 文件设备驱动程序的一个示例是控制打印到打印机的打印机驱动程序。

DLL 的优点1、扩展了应用程序的特性;2、可以用许多种编程语言来编写;3、简化了软件项目的管理;4、有助于节省内存;5、有助于资源共享;6、有助于应用程序的本地化;7、有助于解决平台差异;8、可以用于一些特殊的目的。

通达信DLL函数编程规范

通达信DLL函数编程规范文档记录:版本时间修改者描述1.00 2014-05-23 新修订用户可以自己编写公式函数dll载入通达信客户端,用户dll必须遵循通达信接口规范。

(请参考示范程序TestPluginTCale)DLL函数结构1.通达信提供了PluginTCalcFunc.h头文件。

2.包括注册DLL函数基本信息。

注册函数名称为RegisterTdxFunc。

具体函数实例可参见TCalcFuncSets.cpp示范程序。

自编实现细节说明PluginTCalcFunc.h头文件中PluginTCalcFuncInfo结构用来存放用户自己的函数pCallFunc和函数唯一标记nFuncMark;pCallFunc是typedef void(*pPluginFUNC)( int DataLen,float* pfOUT,float* pfINa,float* pfINb,float* pfINc)类型指针;函数参数分别是(数据个数,输出,输入a,输入b,输入c),参数的计算是基于长度为DataLen 的float类型数组。

RegisterTdxFunc函数为注册函数,用户的函数全部都放入PluginTCalcFuncInfo结构的全局数组g_CalcFuncSets中。

函数dll的使用将生成的dll文件拷贝到主程序的\T0002\dlls目录下(如果没有此目录,请人工建立,如果该dll有关联文件,请一并拷贝过去)主程序进入后,ctrl+F打开公式管理器,点击“DLL函数”按钮。

如上图:第二号DLL绑定了TestPluginTCale.dll在指标公式编辑器中就可以用TDXDLL2第二号DLL函数了。

TDXDLL2(1,H,C,C)含义:调用第二号DLL中标记为1的函数,此函数接受四个输入参数,其中第一个参数用于标记调用DLL中哪个函数。

DLL函数接口说明

DLL函数接口说明typedef void __stdcall (*fun_AddResult)(char pDataStr[10][255],double pDataDouble[100]); extern "C" void __declspec(dllimport) __stdcall SetBackColor(TColor pBkColor);extern "C" void __declspec(dllimport) __stdcall FanSelect(void *pSeriesNames,//系列名称YLDStr * (typedef struct{char Data[255];} YLDStr;) const int pSeriesNameCount,//系列名称个数,-1时表示全部选择void *pSubSeriesNames,//系列名称YLDStr * (typedef struct{char Data[255];} YLDStr;) const int pSubSeriesNameCount,//子系列名称个数,-1时表示全部选择const double &pFlow, //风量const int &pFlowUnitType, //风量单位类型0-m^3/h 1-m^3/s 2-l/s 3-cfmconst double &pPres, //风压const int &pPresUnitType, //风压单位类型0-Pa 1-mmH2O 2-kgf/cm^2 3-inH2Oconst int &pPresType, //风压类型0-全压1-静压const int &pOutFanType,//出风方式0-管道出风1-自由出风const double &pAirDensity,//空气密度const double &pMotorSafeCoff,//电机容量安全系数(%)const bool &pUserSetMotorSafeCoff,//用户设定了电机容量安全系数double &rFlow_STDUnit,//标准单位下的风量fun_AddResult pAddResult//函数指针,用于回传数据);extern "C" void __declspec(dllimport) __stdcall Belt_Selection(const char *pSeriesName,const char *pSubTypeName,const char *pModelName,const int &pSped_DataType,//电机转速类型0-标准数据1-用户数据默认为0(界面选择)const int &pHz_DataType,//频率选择0-50HZ 1-60HZ(界面选择)const int &pRotation,//出风旋转角度R0,R90,R180,R270(参考常量定义)const double &pFanSped,//风机转速(第一步计算得到)const double &pMotorPow,//电机功率(第一步计算得到)const double &pFlow_STDUnit,//标准单位下的风量const double &pTPres,//全压(第一步计算得到)const double &pSPres,//静压(第一步计算得到)const double &pFTEff,//全压内效率(第一步计算得到)const double &pSdbA,//噪声(第一步计算得到)const int &pV olt,//用户选择的电压(参考电压常量声明V380 V400) ,bool pPole[4],//用户选择的极数2,4,6,8bool pBeltType[4],//用户选择的皮带类型SPZ SPA SPB SPCconst bool &pBeSetFanSped,//用户设定了风机转速const double &pFanSpedRt_User,//用户设定的风机转速差const bool &pBeSetBeltMoveSped,//用户设定最大皮带运动速度const double &pBeltMoveSped_User,//用户设定的最大皮带运动速度const int &pUserSel_Distance,//用户的选择0-直接输入中心距(mm) 1-边距(mm)const double &pMargin,//边距(mm)const double &pCenterDistance,//中心距const double &pMotorSafeCof,//电机容量安全系数const bool &pUserSetMotorSafeCoff,//用户设定了电机容量安全系数const double &pFlow_STDSped,//标准转速下的风量(第一步选型结果,下标为46)const double &pMinL10,//轴承最小寿命fun_AddResult pAddResult//函数指针,用于回传数据);extern "C" double __declspec(dllimport) __stdcall CalAirDensity(const double &pB,//大气压力const double &pT,//空气温度const double &pV//相对湿度);extern "C" void __declspec(dllimport) __stdcall DrawCurvePic(const char *pSeriesName,const char *pSubTypeName,const char *pModelName,const char *pFileName,const double &pFlow,const double &pPres,const int &pWidth,const int &pHeight);//画皮带传动风机单转速曲线图extern "C" void __declspec(dllimport) __stdcall DrawSingleFanBySize(const char *pSeriesName,//系列名称const char *pSubTypeName,//子系列名称const char *pModelName,//型号名称const char *pFileName,//文件名称double pSped,//转速double pFlow,//风量(流量)double pDensity,//密度const int &pWidth,//图片宽度const int &pHeight,//图片高度const int &pFlowUnit,//风量单位const int &pPresUnit//风压单位);//画直联风机单转速曲线图extern "C" void __declspec(dllimport) __stdcall DrawDrectSingleFanBySize( const char *pSeriesName,//系列名称const char *pModelName,//型号名称const char *pMotorName,//电机名称const char *pFileName,//文件名称const double &pFlow,//风量(流量) 标准单位const int &pWidth,const int &pHeight,const int &pFlowUnit,//用户选择的风量单位0-标准单位const int &pPresUnit//用户选择的风压单位0-标准单位);extern "C" void __declspec(dllimport) __stdcall DirectFanSelect(void *pSeriesNames,//系列名称YLDStr * (typedef struct{char Data[255];} YLDStr;) const int pSeriesNameCount,//系列名称个数,-1时表示全部选择double &pFlow, //风量const int &pFlowUnitType, //风量单位类型0-m^3/h 1-m^3/s 2-l/s 3-cfmdouble &pPres, //风压const int &pPresUnitType, //风压单位类型0-Pa 1-mmH2O 2-kgf/cm^2 3-inH2O const int &pPresType,//风压类型0-全压1-静压const int &pHz_DataType,//频率选择0-50HZ 1-60HZconst int &pvoltage,//电压0-380 1-220const double &pResultDisData, //选型差值(小数0.1代表10%) const double &pAirDensity,//空气密度fun_AddResult pAddResult//函数指针,用于回传数据);。

Lame-Enc DLL 接口函数说明

dwConfig Specifies what kind of output you want. Since only MP3 currently is supportedyou must set this to BE_CONFIG_LAMEformat.LHV1.dwStructVersion Indicates the version number of the structure, current version number is 1 format.LHV1.dwStructSize Specifies the size of the BE_CONFIG structure (currently 331 bytes)format.LHV1.dwSampleRate Samplerate in Hz for MP3 file. This can be set to either: 32000, 44100 or 48000 for MPEG-I16000, 22050 or 24000 for MPEG-I8000, 11025 or 12000 for MPEG-II.5format.LHV1.dwReSampleRate Specifies to which sample rate the input stream has to be resampled, if set to 0,the encoder will decide which ReSample rate to useformat.LHV1.nMode Stereomode for MP3 file. This can be either BE_MP3_MODE_STEREO, BE_MP3_MODE_JSTEREO, BE_MP3_MODE_DUALCHANNEL orBE_MP3_MODE_MONO.format.LHV1.dwBitrate For CBR, this specifies the actual bitrate, for VBR, it specifies the minimum bitrate Allowed bitrates are: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 and 320.for MPEG-IAllowed bitrates are: 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144 and 160.for MPEG-IIformat.LHV1.dwMaxBitrate For CBR this setting is ignored, when using VBR, it specifies the maximum bitrateformat.LHV1.nPreset The quality option can be set to one of the following presets: NOPRESET,PHONE,SW,AM,FM,VOICE,RADIO,TAPE,HIFI,CD,STUDIO as defined in the LAME_QUALTIY_PRESET. Keep in mind that the presets can overwrite some of the other settings, since it is called right before the encoder is initializedformat.LHV1.bCopyright If this is set to TRUE the Copyright bit in the MP3 stream will be set. format.LHV1.bCRC Set this to TRUE in order to enable CRC-checksum in the bitstream. format.LHV1.bOriginal If this is set to TRUE the Original bit in the MP3 stream will be set. format.LHV1.bPrivate If this is set to TRUE the Private bit in the MP3 stream will be set.format.LHV1.bWriteVBRHeader Sepecifes if the a XING VBR header should be written or not. When this option is enabled, you have to call the beWriteVBRHeader function when encoding has been completedformat.LHV1.bEnableVBR Specifies if VBR encoding option shall be used or not, possible values areTRUE/FALSEformat.LHV1.nVBRQuality Quality option if VBR is enabled (0=highest quality, 9 is lowest quality)format.LHV1.dwVbrAbr_bps If the Average Bit Rate is specified, the lame encoder ignores the nVBRQualitysettings。

易语言中调用DLL使用说明

易语言中调用DLL使用说明基本说明本文所描述的部分功能需易语言4.01或以上版本支持。

“在易语言中调用DLL”包含两方面的内容:调用Windows系统API函数;调用普通DLL函数。

下文用到的“调用API”或“调用DLL”等字眼,除非特别注明,一般都是指以上两方面之一或之和,视上下文而定。

绝大多数情况下,无需明确区分调用的是系统API还是普通DLL。

目前易语言只支持以stdcall方式调用DLL中的导出函数。

Windows系统API一般都是以stdcall调用方式导出的,故在易语言中调用它们时通常不必考虑函数调用方式的问题。

而普通DLL有可能导出“非stdcall调用方式”(比如cdecl)的函数,调用时需要特别注意。

一般而言,考虑到通用性,DLL开发者都会选择导出以sdtcall方式调用的函数。

(支持生成DLL的编程语言通常都支持导出stdcall调用方式的函数,具体实现请参考各编程语言手册。

)易语言编译生成的DLL,其导出函数全部为stdcall调用方式,所以在易语言中调用易语言生成的DLL不存在问题。

目前在易语言中调用DLL时只支持1字节对齐的结构(自定义数据类型)如果DLL命令的某个参数或参数的某个成员是结构类型(自定义数据类型),则其对齐方式必须是1字节对齐。

Windows系统API中所用到的结构都是1字节对齐的,故在调用API时不受此限制。

但如果想用其它编程语言生成DLL供易语言调用且数据类型中包含了1或2字节数据长度的成员(如字符型或短整数),就需要考虑结构的1字节对齐。

在Delphi中,可以这样定义1字节对齐的结构(结构在Delphi中称为record):在其它编程语言或编译器中的定义方式请参考各自的编程手册。

目前易语言支持调用任意复杂的DLL命令只要满足了前面的两个条件——调用方式为stdcall,参数结构为1字节对齐——易语言支持调用任意复杂的DLL命令:参数除了可以是基本数据类型或普通结构类型外,还可以是基本类型地址或基本类型数组,也可以是结构类型地址或结构类型数组,结构类型的成员中还可以包含任意数量和任意层次的其它结构、结构地址、结构数组,等等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档