标签: 64-bit

Windows 中的 GENERIC_WRITE 常量十六进制值是多少?

我正在尝试使用 x64 中的程序集中的 CreatFileA 系统调用打开一个文件进行写入,但是为了执行此操作,我需要指定所需的访问权限。我不知道GENERIC_WRITE的常量是什么,GENERIC_READ常量是80000000h。

; create the file
lea rcx, fileName
mov rdx, 40000000h
xor r8, r8
xor r9, r9
mov QWORD PTR [rsp+48h-28h], 2
mov QWORD PTR [rsp+48h-20h], 80h
mov QWORD PTR [rsp+48h-18h], 0
call CreateFileA
mov FD2, rax

; write to the new file
lea rcx, FD2
lea rdx, buffer
mov r8, len
lea r9, written
mov QWORD PTR [rsp+48h-28h], 0
call WriteFile
mov writeResult, rax
Run Code Online (Sandbox Code Playgroud)

windows 64-bit assembly

1
推荐指数
1
解决办法
6255
查看次数

Windows 2008 64位上.NET应用程序的模式

我的.NET应用程序将如何在Windows 2008 x64下运行?作为32位应用程序还是64位?这有什么不同吗?

.net 64-bit x86

0
推荐指数
1
解决办法
274
查看次数

批量文件在64位Vista中查询注册表

大家好我:)我写的批处理文件有问题.它在32位上工作正常,但显然它不适用于64位系统,我不知道为什么因为我无法访问64位系统.

这是适用于Vista 32位系统的代码

    @echo off
Set Reg.Key=HKLM\SOFTWARE\Malwarebytes' Anti-Malware
  Set Reg.Val=InstallPath
  For /F "Tokens=2*" %%A In (
   'Reg Query "%Reg.Key%" /v "%Reg.Val%" ^| Find /I "%Reg.Val%"'
  ) Do Call Set MBAMPATH=%%B
Run Code Online (Sandbox Code Playgroud)

有人可以重新写它以64位工作吗?

总是谢谢:)

registry scripting 64-bit batch-file

0
推荐指数
1
解决办法
6351
查看次数

在未来的硬件上编程?

我想为未来的硬件练习编程代码.这些是什么?想到的两件主要事情是64位和多核.我还注意到缓存很重要,GPU有自己的技术,但现在我对任何图形编程都不感兴趣.

我还应该知道什么?

-edit-我知道其中很多都在现在,但很快所有的cpus都将是多核的,并且线程化将更加重要.我认为是endians(大与小),但发现它并不重要,并且已经有一个大的endian CPU来测试.

hardware 64-bit multicore

0
推荐指数
2
解决办法
362
查看次数

Process.Start("telnet.exe")抛出异常

我有两个应用程序在W2k8 R2 x64上运行,一个被编译为64位,另一个被编译为32位,因为它具有COM依赖性.在这两个我试图打电话:

Process p = Process.Start("telnet.exe", string.Format("{0} {1}", address, port));
Run Code Online (Sandbox Code Playgroud)

在x64中它工作得很好,但是在32位中我得到一个System.ComponentModel.Win32Exception("系统找不到指定的文件")?

知道这里发生了什么吗?即使我打电话

Process.Start(@"C:\Windows\System32\telnet.exe")

我得到同样的例外?

谢谢,

汤姆

c# 64-bit

0
推荐指数
1
解决办法
5647
查看次数

是否可以在不重新启动Visual Studio的情况下编译32位和64位配置?

目前,Visual Studio刚刚开始cl.exe进行C++源代码编译.cl.exe需要位于%PATH%环境变量中列出的文件夹之一.

由于在编译64位项目之后为了编译32位项目而存在用于32位和64位编译的单独版本的cl.exe,因此必须重新启动Visual Studio.

典型的解决方案是有两个.cmd文件,每个文件适当地设置%PATH%,然后启动Visual Studio.是否有一个不需要重新启动Visual Studio的解决方案?

c++ 64-bit visual-studio-2008 visual-studio visual-c++

0
推荐指数
1
解决办法
3197
查看次数

x64兼容C源

我想我知道我需要使用的#ifdefs在msvc和gcc上兼容x86-32和x86-64,见下文.这些平台是否完整?

#if defined(_MSC_VER)
#  if defined(_M_IA64) || defined(_M_X64)
#    define SIZEOF_SIZE_T 8
#    define SIZEOF_VOIDP  8
#  elif defined(_M_IX86)
#    define SIZEOF_SIZE_T 4
#    define SIZEOF_VOIDP  4
#  else
#    error "Unsupported MSVC platform"
#  endif
#elif defined(__GNUG__)
#  if defined(__x86_64__) || defined(__ia64__)
#    define SIZEOF_SIZE_T 8
#    define SIZEOF_VOIDP  8
#  elif defined(__i386__)
#    define SIZEOF_SIZE_T 4
#    define SIZEOF_VOIDP  4
#  else
#    error "Unsupported GCC platform"
#  endif
#endif
Run Code Online (Sandbox Code Playgroud)

从C程序员的角度来看,IA64和x86 64是否相同?

我也希望能够在Mac上编译.我要添加什么?

编辑:我不能使用sizeof(),因为我正在处理使用类似东西的不可触摸的遗留代码#if SIZEOF_VOIDP == …

c 64-bit portability itanium

0
推荐指数
1
解决办法
1769
查看次数

如何在c中读取一个巨大的.gz文件(超过5 gig未压缩)

我有一些.gz压缩文件,大约5-7gig未压缩.这些是flatfiles.

我编写了一个程序,它接受一个未压缩的文件,并按行读取它,这非常有效.

现在我希望能够在内存中打开压缩文件并运行我的小程序.

我看过zlib但我找不到一个好的解决方案.

由于32位无符号int限制,使用gzread(gzFile,void*,unsigned)加载整个文件是不可能的.

我已经尝试了gzgets,但这几乎是执行时间的两倍,而不是使用gzread读取.(我在2gig样本上测试过.)

我还研究了"缓冲",例如将gzread进程拆分为多个2gig块,使用strcchr找到最后一个换行符,然后设置gzseek.但gzseek将模拟一个完整的文件解压缩.这很慢.

我没有看到任何理智的解决方案.我总是可以做一些检查,无论当前行是否实际上有一个换行符(应该只出现在最后一个部分读取的行中),然后从程序中发生这种情况的点读取更多数据.但这可能会非常难看.

无论如何有任何建议吗?

谢谢

编辑:我不需要同时拥有整个文件,一次只需要一行,但我有一台相当庞大的机器,所以如果这是最简单的我就没有问题.

对于那些建议管道标准输入的人来说,与打开文件相比,我经历了极端的减速.这是我几个月前制作的一个小代码片段,它说明了这一点.

time ./a.out 59846/59846.txt
#       59846/59846.txt
18255221

real    0m4.321s
user    0m2.884s
sys     0m1.424s
time ./a.out <59846/59846.txt
18255221

real    1m56.544s
user    1m55.043s
sys     0m1.512s
Run Code Online (Sandbox Code Playgroud)

和源代码

#include <iostream>
#include <fstream>
#define LENS 10000

int main(int argc, char **argv){
  std::istream *pFile;

  if(argc==2)//ifargument supplied
    pFile = new std::ifstream(argv[1],std::ios::in);
  else //if we want to use stdin
    pFile = &std::cin;

  char line[LENS];
  if(argc==2) //if we are using a filename, print it.
    printf("#\t%s\n",argv[1]);

  if(!pFile){
    printf("Do you …
Run Code Online (Sandbox Code Playgroud)

c c++ 64-bit gzip

0
推荐指数
2
解决办法
4119
查看次数

什么是64位版本的GetTextExtent

我将我们的32位Windows应用程序移植到64位,并尝试清除所有警告.我在我们的代码中发现了对CDC :: GetTextExtent的调用,它将int作为参数.

我注意到GetTextExtent只是调用GetTextExtentPoint32.32让我害怕,所以我开始寻找64位版本的GetTextExtent,但我找不到一个.

谁能告诉我GetTextExtent在64位完全安全?还是有其他方式我们应该获得这些信息?

谢谢

windows 64-bit

0
推荐指数
1
解决办法
831
查看次数

Win x64中原始类型的存储要求

对于List带有n元素的元素,在x64机器上需要更多存储(如果有的话):

List<int>
Run Code Online (Sandbox Code Playgroud)

-要么-

List<long>
Run Code Online (Sandbox Code Playgroud)

我想这个问题可以改为:

在x64上,int占用的空间是否少于long

.net c# 64-bit memory-management primitive-types

0
推荐指数
1
解决办法
82
查看次数