jjzjj

CopyMemory

全部标签

c++ - CopyMemory 复制比 VirtualAlloc 分配更多的字节怎么办

请看这段代码,在我的机器上,它不会引发错误,但我不明白为什么我可以复制比VirtualAlloc分配的更多的字节,这个操作安全吗?PBYTEpNewBuffer=(PBYTE)VirtualAlloc(NULL,3,MEM_COMMIT,PAGE_READWRITE);BYTEFlagThree[]={'a','b','c','d','e','f','g'};CopyMemory(pNewBuffer,FlagThree,sizeof(FlagThree));我分配了3个字节,但复制到内存7个字节。 最佳答案 这不是未定义的行为。事

.net - .NET 与 .NET Core 2 的不同 P/Invoke 入口点

我正在将一些代码从.NET(4.5)移动到.NETCore(2),并且有一个像这样的多目标项目...net45;netcoreapp2.0代码库使用来自kernel32的Win32API函数CopyMemory,但我发现我需要根据我的目标框架使用不同的入口点名称。#ifNET45[DllImport("kernel32.dll",EntryPoint="CopyMemory",SetLastError=false)]#else[DllImport("kernel32.dll",EntryPoint="RtlCopyMemory",SetLastError=false)]#endifpu

c++ - Delphi CopyMemory vs C++ memcpy

好的-所以我似乎从来没有一个简单的问题。我有一个用C++编写的自定义库(不是我编写的)。这个库做了一些网络通信,我只是将一些数据作为字节数组传递给它,并在另一端从它检索一个字节数组。该库为我处理向/从客户端/服务器发送/接收数据的所有网络内容。例如,我可以编写一个客户端和一个服务器。从客户端我生成一个字节数组,库获取字节数组并将其发送到服务器。我写的服务器使用相同的库来做相反的事情,即处理所有流量的接收并最终传回一个字节数组。库将字节数组定义为结构的一部分,如下所示...(我在Delphi中静态加载库,不认为这会有所不同,但我使用的是FastMM4-这是怎么回事影响app和dll之间的

c++ - Delphi CopyMemory vs C++ memcpy

好的-所以我似乎从来没有一个简单的问题。我有一个用C++编写的自定义库(不是我编写的)。这个库做了一些网络通信,我只是将一些数据作为字节数组传递给它,并在另一端从它检索一个字节数组。该库为我处理向/从客户端/服务器发送/接收数据的所有网络内容。例如,我可以编写一个客户端和一个服务器。从客户端我生成一个字节数组,库获取字节数组并将其发送到服务器。我写的服务器使用相同的库来做相反的事情,即处理所有流量的接收并最终传回一个字节数组。库将字节数组定义为结构的一部分,如下所示...(我在Delphi中静态加载库,不认为这会有所不同,但我使用的是FastMM4-这是怎么回事影响app和dll之间的

c++ - Win32 API 函数与它们的 CRT 对应函数(例如 CopyMemory 与 memcpy)

在编写Win32C/C++代码时,使用lstrcpyn或CopyMemory等Windows特定函数代替相应的CRT函数是否有任何优势(例如性能?)(除了CRT功能的可移植性)? 最佳答案 至少一些CRT函数在内部使用Win32函数。此外,CRT需要额外的初始化(例如strtok等函数的线程特定数据)和清理,您可能不希望发生这些事情。你可以创建一个普通的Win32应用程序,而不依赖于任何其他东西,包括CRT(很像你可以使用NTDLL.DLL创建一个普通的NT应用程序-我想想Windows的smss.exe就是这样一个进程BTW)。话