非MFC工程使用MFC库时的问题及解决办法

本文解决非MFC工程使用MFC库时出现的windows.h重复包含错误问题,提供详细的设置步骤与注意事项。

MFC工程使用MFC库时的问题及解决办法

Peter Lee 2005.08.20

一、问题由来

vc6vc71的工程向导中都包含非MFC的工程,诸如win32 console project, win32 static library。非MFC工程创建时是不支持MFC特性的,然后我们在处理实际问题时有时会用到MFC相关类,如Cstring, Cedit等等,这是很正常的。可能有人会说,为何不在一开始就创建MFC工程呢?问题在于MFC工程会产生很多向导生成代码,如基于单文档的工程会有View,Doc等类,很多时候我们只需要一个空工程就可以了。

二、常见问题

MFC工程使用MFC库时最常见的问题就是windows.h重复包含错误,具体如下:

fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>

三、解决办法

MFC工程使用MFC库时,可参考以下步骤

1、工程设置中,将MFC的使用由原来的“使用标准windows库”改为“在共享DLL中使用MFC”(VC71

如果是英文版,相关选项是:

Microsoft Foundation Classes: Use MFC in a shared dll, no using MFCVC6

NOTE:因为我用的是中文版的vc71,英文版的vc6.

2头文件包含

不同的MFC类需包含的头文件是不一样的。

常用的类,如Cstring, Cedit 等,包含afxwin.h就可以了

如果不清楚包含什么头文件的话,可以同msdn进行查询,msdn中,对于MFC类的介绍中,都会给出相应的header file requirement.

3、#include 语句一定要写在首行

这一点很重要,通常出现前面讲到的windows.h重复包含错误,都是因为#include 语句没有写在首行。

另外还要注意的是,如果#include语句是在一个头文件里,那么对应头文件的包含也要写在首行。示例如下:

=============

test.h文件的内容如下:

include <afxwin.h> //保证该语句在首行

test.cpp的文件内容如下:

#include “test.h” //同样也要保证该语句在首行

=============

ps: 这么做的具体原因我也不知道,我是在实际调试中琢磨出这个道理的。我自己在这个问题上花了很多冤枉时间,写下该篇,就是希望大家不要在这个问题上绊脚。

 
<think>好的,用户想了解电流采样的方法及应用。首先,我需要确定常见的电流采样技术有哪些。记得有分流电阻、霍尔效应传感器、电流互感器、罗氏线圈等。然后得查每种方法的原理、优缺点以及适用场景。 接下来是应用方面,比如电机控制、电源管理、电池监测、新能源领域等。可能需要具体案例来说明不同方法在实际中的应用情况。还要注意是否需要区分交流直流,因为不同方法可能适用不同电流类型。 用户可能需要比较不同方法的成本、精度、响应速度等因素,帮助选择合适方案。还要考虑是否有隔离需求,比如霍尔和互感器能提供隔离,而分流电阻可能不行。另外,高频或大电流场合可能用罗氏线圈更好。 需要检查最新的技术发展,比如集成电流传感器芯片,它们如何简化设计。同时,是否有关于校准或噪声抑制的内容,这对实际应用很重要。最后,确保回答结构清晰,分方法与应用两部分,每部分用条目列出,符合用户的要求。</think>电流采样方法及应用可分为以下技术方案: **一、电流采样方法** 1. **分流电阻法** 在回路中串联低阻值精密电阻($R_{shunt}$),通过欧姆定律计算电流:$I = V_{sense}/R_{shunt}$ 适用直流或低频交流场景,成本低但存在功率损耗,典型精度±1% ```c // 基于ADC的采样代码示例 float read_current() { adc_value = analogRead(SENSOR_PIN); voltage = (adc_value * 3.3) / 4095; // 假设12位ADC return voltage / 0.01; // 10mΩ分流电阻 } ``` 2. **霍尔效应传感器** 基于载流导体周围磁场强度测量,分为开环(精度±3%)和闭环(精度±0.5%)两种类型。带宽可达200kHz,支持0-1000A范围,具备电气隔离特性。 3. **电流互感器(CT)** 仅适用于交流测量,变比关系为$N = I_p/I_s$。典型频率范围50Hz-10kHz,需注意磁饱和问题,常用于电能计量。 4. **罗戈夫斯基线圈** 空心环形线圈配合积分器使用,适用高频大电流(>100kA)测量,线性度优于0.1%,无磁饱和风险,但需配合信号调理电路。 **二、典型应用场景** - 工业电机驱动:IGBT模块过流保护(响应时间<1μs) - 电动汽车BMS:采用隔离式Σ-Δ调制器实现0.5%精度电流检测 - 光伏逆变器:结合分流器与数字隔离技术实现组串电流监测 - 消费电子:TWS耳机充电仓的μA级待机电流检测 - 智能电表:0.2S级精度要求下CT与采样算法的组合应用 **三、选型关键参数** | 参数 | 分流电阻 | 霍尔传感器 | 电流互感器 | |-------------|----------|------------|------------| | 隔离能力 | 无 | 有 | 有 | | 典型带宽 | DC-50kHz | DC-200kHz | 50Hz-10kHz | | 功耗 | 高 | 低 | 低 | | 温度漂移 | ±50ppm/℃ | ±0.05%/℃ | ±0.02%/℃ | **四、误差补偿技术** 1. 四线制开尔文连接消除引线电阻影响 2. 数字校准算法实现增益/偏移补偿 3. 同步采样消除共模噪声 4. 温度传感器实时补偿热漂移
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值