相关疑难解决方法(0)

Visual Studio"任何CPU"目标是什么意思?

我对Visual Studio 2008中的.NET平台构建选项有一些困惑.

什么是"任何CPU"编译目标,它生成什么类型​​的文件?我检查了这个"Any CPU"构建的输出可执行文件,发现它们是x86可执行文件(谁也看不到它!).那么,将可执行文件定位到x86与"任何CPU"之间有什么区别吗?

我注意到的另一件事是托管C++项目没有这个平台作为选项.这是为什么?这是否意味着我怀疑"任何CPU"可执行文件是普通的32位可执行文件是对的?

.net 64-bit build visual-studio-2008

477
推荐指数
8
解决办法
20万
查看次数

内存映射文件:CreateViewAccessor上的IOException用于大数据

我与大合作,和不断增长的使用内存映射文件的托管的包装文件:MemoryMappedFileMemoryMappedViewAccessor

我使用以下代码创建空文件:

long length = 1024L * 1024L * 1L; // 1MB

// create blank file of desired size (nice and quick!)
FileStream fs = new FileStream(filename, FileMode.CreateNew);
fs.Seek(length, SeekOrigin.Begin);
fs.WriteByte(0);
fs.Close();

// open MMF and view accessor for whole file
this._mmf = MemoryMappedFile.CreateFromFile(filename, FileMode.Open);
this._view = this._mmf.CreateViewAccessor(0, 0, MemoryMappedFileAccess.ReadWrite);
Run Code Online (Sandbox Code Playgroud)

可以正常工作,最大1GB。当我尝试2GB时,我得到了IOException

Not enough storage is available to process this command.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.MemoryMappedFiles.MemoryMappedView.CreateView(SafeMemoryMappedFileHandle memMappedFileHandle, MemoryMappedFileAccess access, Int64 offset, Int64 size) …
Run Code Online (Sandbox Code Playgroud)

.net c# memory-mapped-files

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