C19、DLL

本文介绍了Windows中重要的DLL文件,包括Kernel32.dll、User32.dll和GDI32.dll的功能,以及AdvAPI32.dll、ComDlg32.dll和ComCtl32.dll的用途。此外,还讲解了DLL的特殊目的,如安装挂钩、COM和ActiveX,并提供了创建DLL模块的步骤和代码示例。

Windows三个重要的DLL

n         Kernel32.dll:管理内存、进程、线程

n         User32.dll:执行用户界面(窗口创建和消息传送)

n         GDI32.dll:画图和文本显示。

特殊DLL

n         AdvAPI32.dll:安全、注册表、事件记录

n         ComDlg32.dll:常用对话框

n         ComCtl32.dll:常用窗口控件

DLL的特殊目的:Windows某些特性只能为DLL使用:

n         安装挂钩(SetWindowsHookExSetWinEventHook

n         COM

n         ActiveX

创建DLL模块:

发行DLL(给客户使用其中的函数)时要分发的文件:.h, .lib, .dll

发行EXE模块(给客户运行)时要分发的文件:.dll

一、头文件格式

/*************************************************************************

       Module MyLib.h

// Module Name; Purpose; Date; Edition

*************************************************************************/

#ifdef MYLIBAPI

//  MYLIBAPI 要在可执行文件的头部定义

//  你的函数,变量申明

#else

//  这里是使用DLL模块的模式

#define MYLIBAPI extern “C” __declspec(dllimport)

#endif

//  在这里定义数据结构和符号。

//  定义输出变量(尽量避免输出变量

MYLIBAPI int g_nResult;

//  输出函数的申明

MYLIBAPI int MyFuncint n);

///////////////////////////////////////////////////////////////// end of file ///////////////////////////////////////////////

二、源文件格式

/*************************************************************************

       Module MyLib.cpp

// Module Name; Purpose; Date; Edition

*************************************************************************/

// 包含你需要的头文件

#include<windows.h>

 

// 定义宏的位置

// 在包含头文件之前,及任何函数、变量定义之前 定义宏

#define MYLIBAPI extern “C” __declspec(dllexport)

// 包含头文件

#include “mylib.h”

// 代码

int g_nResult;

int MyFunc(int n){  return n;           }

///////////////////////////////////////////////////////////////// end of file ///////////////////////////////////////////////

三、Mircrosoft编译器会修改函数名,如上面的函数的输出节中名字会是:_ MyFunc @4。若要使其它编译器能够使用你的库,有两个方法(建议使用第一种)

a)         为编程项目建立.def文件,加上类似下面的EXPORTS节,就会输出未修改过的函数名:

EXPORTS

       MyFunc

b)        也可以在DLL源代码模块中,添加下面代码:

#pragma comment(linker, “/export:MyFunc=_MyFunc@4”)

四、VCDumpBin.exe(查看MSDN)程序可以查看有哪些节,以及哪些输入、输出节,模块列表,输入符号列表等。(RVA这一列指明在DLL文件映像中的什么位置能够找到输出符合的位移量)

五、加载程序搜索DLL的顺序(下一节将介绍在如何改变搜索顺序)

a)         包含可执行文件的目录

b)        进程的当前目录

c)        Windows系统目录

d)        Windows目录

e)         PATH环境变量中列出的各个目录

 

---------- Block 16516 at 0x016C7910: 8200 bytes ---------- Leak Hash: 0x3BE9F3C8, Count: 1, Total 8200 bytes Call Stack (TID 1080): ucrtbased.dll!malloc_dbg() mfc140ud.dll!0x78E1C19B() mfc140ud.dll!0x78E1C3F8() mfc140ud.dll!0x78E1C426() mfc140ud.dll!0x7921E889() mfc140ud.dll!0x79176A8F() mfc140ud.dll!0x792A2803() mfc140ud.dll!0x7925BFE4() mfc140ud.dll!0x78D50E5C() mfc140ud.dll!0x7907740B() mfc140ud.dll!0x79076734() mfc140ud.dll!0x78DB506C() mfc140ud.dll!0x78E18474() mfc140ud.dll!0x792623D5() mfc140ud.dll!0x7926670D() mfc140ud.dll!0x79256E47() mfc140ud.dll!0x79257E75() mfc140ud.dll!0x78F71DBD() USER32.dll!Ordinal2713() + 0x813 bytes USER32.dll!MsgWaitForMultipleObjectsEx() + 0x7CD bytes USER32.dll!MsgWaitForMultipleObjectsEx() + 0x270 bytes USER32.dll!SystemParametersInfoW() + 0x2C9 bytes ntdll.dll!KiUserCallbackDispatcher() + 0x36 bytes USER32.dll!GetWindowLongW() + 0x142D bytes UxTheme.dll!GetThemeAppProperties() + 0xBB bytes UxTheme.dll!Ordinal43() + 0x2507 bytes UxTheme.dll!Ordinal43() + 0x1738 bytes USER32.dll!GetWindowLongW() + 0x1559 bytes USER32.dll!IsChild() + 0x13E bytes USER32.dll!Ordinal2001() + 0x20C7 bytes USER32.dll!DefFrameProcW() + 0x1B bytes mfc140ud.dll!0x792A3C14() mfc140ud.dll!0x7925AC2C() mfc140ud.dll!0x78DE8596() mfc140ud.dll!0x792955A0() mfc140ud.dll!0x79262670() mfc140ud.dll!0x7926670D() mfc140ud.dll!0x79256E47() mfc140ud.dll!0x79257E75() mfc140ud.dll!0x78F71DBD() USER32.dll!Ordinal2713() + 0x813 bytes USER32.dll!MsgWaitForMultipleObjectsEx() + 0x7CD bytes USER32.dll!MsgWaitForMultipleObjectsEx() + 0x270 bytes USER32.dll!SystemParametersInfoW() + 0x2C9 bytes ntdll.dll!KiUserCallbackDispatcher() + 0x36 bytes USER32.dll!GetWindowLongW() + 0x142D bytes UxTheme.dll!GetThemeAppProperties() + 0xBB bytes UxTheme.dll!Ordinal43() + 0x2507 bytes UxTheme.dll!Ordinal43() + 0x1738 bytes USER32.dll!GetWindowLongW() + 0x1559 bytes USER32.dll!IsChild() + 0x13E bytes USER32.dll!Ordinal2001() + 0x20C7 bytes USER32.dll!DefFrameProcW() + 0x1B bytes mfc140ud.dll!0x792A3C14() mfc140ud.dll!0x79266752() mfc140ud.dll!0x79256E47() mfc140ud.dll!0x79257E75() mfc140ud.dll!0x78F71DBD() USER32.dll!Ordinal2713() + 0x813 bytes USER32.dll!MsgWaitForMultipleObjectsEx() + 0x7CD bytes Data: 00 00 00 00 CD CD CD CD 94 E7 CC 78 01 00 00 00 ........ ...x.... 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ........ ........ 00 00 00 00 30 DE 64 01 0C 00 01 00 00 CD CD CD ....0.d. ........ 00 00 00 00 00 00 00 00 04 E7 CC 78 78 E7 CC 78 ........ ...xx..x 00 00 00 00 FF FF FF FF FF FF FF FF CD CD CD CD ........ ........ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00 00 00 00 00 00 00 00 18 7A 6C 01 CD CD CD CD ........ .zl..... CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ........ ........ “ICT.exe”(Win32): 已卸载“C:\Windows\SysWOW64\ExplorerFrame.dll” 线程 0x43f4 已退出,返回值为 0 (0x0)。 线程 0xa90 已退出,返回值为 0 (0x0)。 线程 0x2570 已退出,返回值为 0 (0x0)。 线程 0x5100 已退出,返回值为 0 (0x0)。 线程 0x5c64 已退出,返回值为 0 (0x0)。 Detected memory leaks! Dumping objects -> {162} normal block at 0x016456E8, 332 bytes long. Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 {161} normal block at 0x01645570, 332 bytes long. Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 {160} normal block at 0x016453F8, 332 bytes long. Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 {159} normal block at 0x01645280, 332 bytes long. Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 {158} normal block at 0x01645108, 332 bytes long. Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Object dump complete. No memory leaks detected. Visual Leak Detector is now exiting. 程序“[25396] ICT.exe”已退出,返回值为 0 (0x0)。 随意截取了一段,这是vld没有检测出来吗
08-23
<think>嗯,用户想了解C13和C19电源的详细介绍。根据提供的引用材料,尤其是引用[2]和引用[4],这两种都是IEC 60320标准的电源连接器类型,在工业环境中很常见。 先整理基础参数对比:从引用[2]的配图说明可以看出,C13是15A/250V规格,而C19是16A/250V。C13比较常见于电脑设备,而C19用于服务器等大功率设备。引用[4]提到PDU插座类型时也强调了这两种规格的区别。 安全规范方面需要特别注意:引用[3]指出工业环境对线缆要求更严格,所以会特别说明温度等级要求(C13要求70℃而C19要求105℃)。线径差异也值得强调,C19必须用更粗的线应对更大电流。 应用场景的补充来自多个引用:引用[2]的配电盒连接场景和引用[4]的PDU输入分类都说明C19主要用于三相输入或双路输入的高功率机柜。这个应用差异对用户选型很关键。 最后考虑用户可能的延伸需求:既然用户专门问"详细介绍",除了基础参数,可能还关心实际应用中的匹配问题。所以补充了冷压端子等工业专用配件信息,并准备回答可能的延伸问题,比如与C14/C20插座的配对关系——这也是引用[2]图纸中明确展示的。 安全提示部分则融合了引用[3]的核心观点:工业环境必须考虑过载和温度因素,不能简单套用民用标准。 </think> 以下是关于C13和C19电源连接器的详细介绍,结合工业应用场景和技术规范: --- ### **一、基础规格与定义** 1. **IEC标准** C13/C19属于国际电工委员会(IEC 60320)标准的电源连接器,专为设备间安全供电设计[^4]。 - **C13插座**:配套**C14插头**(常见于设备输入口),额定电流**10A/15A**,电压**250V**。 - **C19插座**:配套**C20插头**,额定电流**16A**,电压**250V**,用于更高功率设备[^2]。 2. **物理结构差异** | 类型 | 插孔形状 | 尺寸 | 适用线径 | |------|--------------|----------------|----------------| | C13 | 矩形(三针) | 较小(宽×高≈21×15mm) | 通常配1.0-1.5mm²线缆 | | C19 | 矩形(三针) | 较大(宽×高≈29×17mm) | 需≥1.5-2.5mm²线缆[^2] | --- ### **二、工业应用场景** 1. **C13的典型用途** - 连接**服务器、交换机、台式电脑**等中功率设备(功率≤3000W)。 - 标准电源线配置:**C14插头(设备端)→ C13插座(线缆端)→ PDU插排**(见图7-2)。 2. **C19的高功率场景** - 用于**高性能服务器、UPS电源、工业设备**(功率3000W~4000W)[^4]。 - 线缆配置:**C20插头(设备端)→ C19插座(线缆端)→ PDU或配电盒**(见图7-3)。 3. **工业适配方案** - **制式电源线**(如中国):PI弯公插头 → C13/C19直母插座(图7-4/7-5)[^2]。 - **配电盒取电**:冷压端子 → C13/C19插座(图7-6/7-7),确保大电流稳定传输。 --- ### **三、安全与选型关键** 1. **承载能力要求** - C13线缆需满足**70℃耐温等级**,C19需**105℃耐温**(工业环境散热需求)[^3]。 - 线径必须匹配电流:**C13用≥1.5mm²,C19用≥2.5mm²**,避免过载发热[^3]。 2. **误插防护设计** - C19插头无法插入C13插座(尺寸差异防呆),防止低功率接口过载。 - 工业PDU常标注颜色区分(如C13黑色、C19红色)[^4]。 --- ### **四、典型接线拓扑** ```mermaid graph LR A[市电输入] --> B(配电盒) B --> C1[冷压端子 → C19线缆 → 服务器] B --> C2[冷压端子 → C13线缆 → 交换机] B --> D[三相PDU] D --> E1[C20插头 → UPS] D --> E2[C14插头 → 机柜空调] ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值