Skip to content

VC编程注意点 ​

ELMEC 2021年5月29日

乱码引起下一行没有编译 ​

如下图
vc001

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) // 此行增加
#endif

VC2019 - error LNK2026: 模块对于 SAFESEH 映像是不安全的 ​

在 VC2019使用外部lib时,有会出现 “error LNK2026: 模块对于 SAFESEH 映像是不安全的”。
vc002

解决办法
在当前工程的属性页中,链接器 > 命令行 > 其它选项框中填入/SAFESEH:NO
vc003


爱立迈科(宁波)计测仪器有限公司
浙江省宁波市中山东路369号中山首府B-708
URL: www.elmec-gms.com.cn
TEL: 0086-0574-8733-7211
Mail: nb_branch@elmec-gms.com.cn

ELMEC Document Center