Theme
VC编程注意点
ELMEC 2021年5月29日
乱码引起下一行没有编译
如下图
fatal error C1010: unexpected end of file while looking for precompiled head
在VS编译时候,出现fatal error C1010: unexpected end of file while looking for precompiled head。
问题详细
致命错误C1010,在寻找预编译指示头文件时,文件未预期结束。就是没有找到预编译指示信息的问文件。
顾名思义就是预编译因为缺少了预编译文件而失败。解决方法显然可以取消预编译,或者帮助编译器找到预编译文件。
解决解法
- 右键单击项目工程中的cpp文件,在菜单Project->Settings->C/C++->Precompile Header,设置为第一项:Not using precompile headers。
- 在.cpp文件开头添加包含文件stdafx.h。
cpp
#include "stdafx.h"VS2010编译成64位APP时,不能显示表格内容
问题详细
编译64位FC.exe(UK的FTB、NPT的FTB)后,发现Pattern列表、详细列表、NG列表等等表格相关的界面时,出现无法显示内容。但32位APP能正常显示。
问题原因
64位的指针是8个字节,32位的指针是4个字节,某此结构体定义中,把指针定义为了4个字节的DWORD,导致64位无法显示。
解决办法
- 在WinUser.h中,增加8字节对应逻辑,WinUser.h文件所在位置:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
- 无需修改FC源码
WinUser.h变更内容
cpp
// WinUser.h
#ifndef _WINUSER_
#define _WINUSER_
#pragma once
#pragma pack( push, 8 ) // 此行增加(8字节对齐)
// some source code
#pragma pack (pop) // 此行增加
#endifVC2019 - error LNK2026: 模块对于 SAFESEH 映像是不安全的
在 VC2019使用外部lib时,有会出现 “error LNK2026: 模块对于 SAFESEH 映像是不安全的”。
解决办法
在当前工程的属性页中,链接器 > 命令行 > 其它选项框中填入/SAFESEH:NO
爱立迈科(宁波)计测仪器有限公司
浙江省宁波市中山东路369号中山首府B-708
URL: www.elmec-gms.com.cn
TEL: 0086-0574-8733-7211
Mail: nb_branch@elmec-gms.com.cn