草庐IT

header_as_array

全部标签

c++ - _WIN32_WINNT 定义在 header 中更改,这是否会导致二进制不兼容?

在VS2010中,我正在努力将应用程序更新到第三方库的新版本,该库要求_WIN32_WINNT至少为0x501,但另一个提供二进制共享库的第三方共享库在header中将其定义为0x500包含在应用程序中。如果修改了,是否会出现二进制不兼容或者这是一个无关紧要的更改?我是否必须从将其定义为0x500的库中请求新的二进制文件?我不确定如何判断这是否需要新的bin——我认为如果任何类/结构的大小或命名发生变化,或者任何方法/函数签名发生变化,则需要进行新的编译。 最佳答案 简短的回答:可能不会,但如果是的话,那你就进退两难了。长答案:_W

c++ - 可移植可执行 DOS header 长度

我一直在研究这个图像来构建一个可移植的可执行文件:https://i.imgur.com/LIImg.jpg图像/演练表示PEheader从0x40(十进制为64)开始。但是,十六进制转储显示DOSheader的长度为32字节。每个字段是否以4个字节打包?查看WinNT.h中的IMAGE_DOS_HEADER,好像也不合适。它有16个2字节的字段,一个4长度的2字节数组,一个10长度的2字节数组,以及指向PE位置的4字节指针。无论你怎么看,它加起来都不等于64... 最佳答案 However,thehexadecimaldumpsa

windows - 选择 'Run as administrator' 后网络共享上的批处理文件立即关闭

概要:在网络共享上创建一个.bat文件,只需将pause放入其中,然后保存。右键单击新文件并“以管理员身份运行”它会立即关闭,为什么?将文件移动到本地PC(%SYSTEMDRIVE%)它将正常工作。所以这显然是UNC路径的问题?我该如何解决?我尝试将pushd"%~dp0"作为第一行,但同样的即时关闭问题。如果你想知道我在做什么,这里有一个片段:echo------MADEBYME-----REMinstallfrombatchfilelocation,anetworkUNCpathmsiexec/i"%~dp0AppNameHere.msi"/qn/norestart/log%TEM

windows - C :/Program is not recognized as an internal or external command

我在系统变量中有JAVA_HOME变量并设置为C:\ProgramFiles\Java\jdk1.8.0_60当我尝试使用命令%JAVA_HOME%时出现错误C:/Programisnotrecognizedasaninternalorexternalcommand.我的理解是因为程序后面的路径有空格,我也试过在路径中使用引号,但没有解决问题。即"C:\ProgramFiles\Java\jdk1.8.0_60"但没有帮助。编辑:我尝试用ProgramFiles删除那些。现在我的系统路径变量看起来像这样:%SystemRoot%\system32;%SystemRoot%;%Syste

c++ - IMAGE_SECTION_HEADER的VirtualAddress和PointerToRawData的区别

在this文章,定义是DWORD虚拟地址InEXEs,thisfieldholdstheRVAtowheretheloadershouldmapthesection.Tocalculatetherealstartingaddressofagivensectioninmemory,addthebaseaddressoftheimagetothesection'sVirtualAddressstoredinthisfield.DWORDPointerToRawDataThisisthefile-basedoffsetofwheretherawdataemittedbythecompiler

c++ - 如何使用 Winsock 从数据报的 IP header 中获取源 IP 地址?

我有一个绑定(bind)到INADDR_ANY的端口。我正在成功接收数据报。接收后,需要读取IP头,获取源IP地址。 最佳答案 如果您使用标准的recv或read函数调用,我认为您无法获得它。recvfrom调用如下:intrecvfrom(__inSOCKETs,__outchar*buf,__inintlen,__inintflags,__outstructsockaddr*from,__inout_optint*fromlen);包含一个结构(上面倒数第二个字段),它将接收源地址,您可以出于任何需要检查该地址。

windows - 如果我尝试将 header 编译为没有换行符的包含,为什么 MSVC++ 会给我一个错误? (C++/Windows )

我正在使用MSVC++编写一个简单的窗口,并且我包含了一个菜单的资源文件:MYMENUMENUDISCARDABLE//etc.然后我创建了一个头文件“resourcedef.h”,其定义如下#defineID_MYMENU_FILE_CLOSE1002我可以将它包含在我的main.cpp文件中而不会出错,但是,当我将它包含在资源文件中时,我得到了错误.\resourcedef.h(9):fatalerrorRC1004:unexpectedendoffilefound(resourcedef.h恰好有9行长)。当我在.h的末尾添加换行符时,//lines1-8#defineID_MY

windows - Hudson as service on Windows - 文件系统权限

几个月来,我们一直在用户帐户下的WindowsXP“服务器”上运行Hudson。这意味着有人手动登录并通过.bat文件启动Hudson(设置一些环境变量,然后运行​​java-jarhudson.war)然而,最近几次停电导致要求Hudson在服务器启动时自动启动。因此,我转而关注作为Windows服务运行的Hudson。这将允许Hudson随Windows自动启动,并且不需要特定的用户帐户。我已经设法将它安装为一项服务,并且我已经更改了hudson.xml以便运行批处理文件而不是直接运行java。我这样做是因为我们在Cygwin上使用git构建,并且必须在bash启动java/Hud

c++ - 使用 GetModuleHandle 获取指向 IMAGE_DOS_HEADER 的指针?

一旦我的进程加载到内存中,我就试图获取它的图像库。据我了解,您可以调用GetModuleHandle来获取图像库。我的问题是,返回的句柄是否实质上指向IMAGE_DOS_HEADER结构,以便您可以执行以下操作:PIMAGE_DOS_HEADERDosHeader;DosHeader=(PIMAGE_DOS_HEADER)GetModuleHandle(NULL);如果这不正确,您还可以使用什么其他方法? 最佳答案 这是正确的,但如果您想要dll的模块句柄,则需要指定其路径。否则,您将获得进程exe的句柄。您还应该首先检查返回的HM

windows - OpenCV Windows 安装 : can not open file "OpenCV-2.4.5.exe" as archive

有谁知道如何解决这个问题?我只想在我的Windows7(64位)平台上安装OpenCVforWindows。我下载错包了吗?作为引用,我下载的文件扩展名为.exe。我还尝试将其更改为.7z,但没有用(说存档已损坏)。什么给了?? 最佳答案 安装程序可能已损坏。再次下载,最好使用下载管理器。 关于windows-OpenCVWindows安装:cannotopenfile"OpenCV-2.4.5.exe"asarchive,我们在StackOverflow上找到一个类似的问题: