草庐IT

MSVC_EVIL_FLOAT_HACK

全部标签

windows - 用于查看组合字符串和 float 据的十六进制编辑器

我有一个未知格式的二进制文件,我需要能够读取它。我可以访问一个可以“解压”文件的程序,但用户界面对于导出数据来说很糟糕。我已经提取了几个点,试图在文件中搜索它们并发现一种模式,但这不是一种有效的方法。我想要做的是将十六进制模式与单个浮点值相匹配,但复制、粘贴、翻译和搜索文件并不是一个快速的过程。我环顾四周,似乎找不到任何允许用户突出显示4或8个字节并在TextView中显示单float或双float的十六进制编辑器,而不是Mojibake.也许我没有充分利用我尝试过的十六进制编辑器的全部潜力,但我被困住了。这是我尝试过的编辑器列表。有谁知Prop有我需要的功能的编辑器,或者如何正确使用

c++ - MSVC (std::codecvt) 上的双字节编码:无法识别前导字节

我想使用std::codecvt::in()将以双字节代码页编码的字符串转换为UTF-16字符串关于Microsoft标准库实现(MSVC11)。例如,考虑以下程序:#include#includeintmain(){//KATAKANALETTERA(U+30A2)inShift-JIS(Codepage932)//http://msdn.microsoft.com/en-us/goglobal/cc305152charconstcs[]="\x83\x41";std::localeloc=std::locale("Japanese");//Output:"Japanese_Japa

c++ - 如何使用程序集获取返回 float 的 __stdcall 函数的结果

我有一个汇编例程,它以通用方式调用已知使用stdcall约定的函数并返回一个float。编码框架使用此函数将stdcall函数公开给脚本语言。背景这是在MinGW4.3、Win32上编译的使用GNU内联汇编的函数:inlineuint64_tstdcall_invoke_return_float(intargs_size_bytes,constchar*args_ptr,void*func_ptr){uint64_tresult;assert(0==args_size_bytes%4||!"argumentsizemustbeamultipleof4bytes");#ifdefined

c - MSVC 生成的符号表中 __real、__imp、__xmm 符号的含义

我是一名UNIX开发人员,负责帮助维护一些Windows软件,我正在查看.DEF生成器同时修复错误。它不包括__xmm,__real和__imp-来自导出的前缀符号。我一直在努力弄清楚这些符号到底是什么。很明显,它们不需要出现在.DEF中。文件(如果它们需要在DLL接口(interface)上导出,编译器将__declspec(dllexport)对其自身进行注释)但是......它们是什么?看起来排除__imp的目的前缀是排除functioncallthunks.正确吗?搜索MSDN未提供有关__xmm的信息或__real(顺便说一句,使用social.msdn.microsoft.

windows - 用私有(private)实现替换 MSVC CRT 函数

我有一个嵌入式IoT项目,我喜欢首先使用VisualStudio等PC工具进行部分开发。我的嵌入式项目只有一个文件系统的闪存,我想将fopenfread等重定向到我自己在Windows上的私有(private)实现。但我遇到的是无法让我的私有(private)CRT库优先于内置CRT(例如,由/MD编译器开关驱动的内置行为)。我有一个简单的三项目解决方案。项目1是一个测试可执行文件。它有一条主线:intmain(){test();}项目2和3是静态库。项目2有:#include#includevoidtest(){printf("%s\n",strchr("x",'x'));}项目3有

c# - 如何避免序列化 float 组属性

我为CustomDashPattern使用了一个float组属性,并像下面的代码一样使用它,float[]customDashPattern={5,3,5,3};publicfloat[]CustomDashPattern{get{returncustomDashPattern;}set{customDashPattern=value;}}publicboolShouldSerializeCustomDashPattern(){returncustomDashPattern!=newfloat[]{5,3,5,3};}但即使未更改其默认值,属性值仍会在设计器中序列化。即使模式是默认值,

c++ - MSVC 函数名修饰

这个问题在这里已经有了答案:Isthereturntypeofafunctionpartofthemangledname?(2个答案)关闭10个月前。在Linux中,GCC编译器不会将返回类型添加到函数的错位名称中,在主要版本更改的情况下不会导致ABI不兼容错误。因此,我通常根据主要版本在内联命名空间中使用abi_tag来强制执行这种行为。MSVC2017如何在Windows中处理函数名称?我需要在内联命名空间中添加类似于abi_tag的内容来复制此行为吗?

css - CSS设计中的 "Holly Hack"是什么

我知道它与旧版本的IE错误有关,但除此之外,没有具体定义那是什么类型的hack。 最佳答案 以HollyBergevin命名,thisarticle是黑客详细信息的权威来源。通常,hack(s)是IE6CSS缺陷/渲染错误的解决方法。 关于css-CSS设计中的"HollyHack"是什么,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6789635/

windows - 使用 MSVC 2010 构建 OpenSSL 1.0.1c 时出错

我已经成功配置了OpenSSL用于构建,但是当我运行nmake时,我得到了这个:c:\Development\Qt\5\OpenSSL>nmake-fms\ntdll.maktestMicrosoft(R)ProgramMaintenanceUtilityVersion10.00.30319.01Copyright(C)MicrosoftCorporation.Allrightsreserved.cl/Fotmp32dll\md4test.obj-Iinc32-Itmp32dll/MD/Ox/O2/Ob2-DOPENSSL_THREADS-DDSO_WIN32-W3-Gs0-GF-Gy

带 float 的 Windows ASM printf

我一直试图在汇编程序中与Windows中的标准C库进行交互,但遇到了麻烦。出于某种原因,我无法让printf接受浮点变量,所以这里出了点问题。这是我能创建的最短的演示问题的程序。我已经包含了解释我对应该发生的事情的理解的评论。谢谢;;Hello64.asm;Asimpleprogramtoprintafloatingpointnumberinwindows;;assemble:nasmfloat64.asm-fwin64;link:golink/console/entrymainfloat64.objMSVCRT.dll;;tellassemblertogenerate64-bitco