草庐IT

block-level

全部标签

c++ - 大数据 block 的 C++ 中的碎片 (Windows)

我一直在使用malloc()分配内存来开发我的程序。但是,我的调查让我认为我面临着内存碎片问题。我的程序需要5次内存分配,每次分配约70MB。当我使用4个线程运行我的程序时,我需要5x4内存分配,每个内存分配~70MB(而且我不能使用更少的内存)。最后,我希望能够使用我的i7的8个内核,即5x8内存分配。如果我执行5x2malloc()s,程序就可以运行。不适用于5x3malloc()。我一直在阅读有关std::vector和std::deque的内容。我相信std::deque是我解决这个问题的方法,因为std::vector分配了一大块连续的内存作为malloc()确实如此。是否还

windows - 从 SHDocVw WebBrowser 控件中检索 "highest level frame"

DocumentComplete的文档接近尾声的事件提及:Intheloadingprocess,thehighestlevelframe,whichisnotnecessarilythetop-levelframe,firesthefinalDWebBrowserEvents2::DocumentCompleteevent.Atthistime,thepDispparameteristhesameastheIDispatchinterfacepointerofthehighestlevelframe.最高层框架和顶级框架有什么区别,如何获取对最高层框架的引用?

c++ - 帮助!错误 C2040 : 'HWINEVENTHOOK' : 'DWORD' differs in levels of indirection from 'HWINEVENTHOOK__ *'

我正在一个新机器(vista64)上编译我的应用程序,现在它不再编译了。编译器给我标题中的错误。问题似乎(?)是HWINEVENTHOOK在中定义了两次windef.h#if(WINVER>=0x0400)DECLARE_HANDLE(HWINEVENTHOOK);#endif/*WINVER>=0x0400*/然后在winable.h中是#ifWINVER但是,我刚刚查找了vista的WINVER,它是0x0600,而windowsXP是0x0501那么为什么要定义DWORD?我不知所措。有人帮忙吗? 最佳答案 根据thisMSD

windows - x64 允许每个 block 的线程数少于 Win32?

当我执行一些cuda内核时,我注意到对于我自己的许多cuda内核,x64构建会导致失败,而Win32不会。我很困惑,因为cuda源代码是相同的,而且构建很好。就在x64执行时,它说它需要太多资源来启动。但是x64在概念上不应该比Win32允许更多的资源吗?如果可能的话,我通常喜欢每个block使用1024个线程。因此,为了使x64代码工作,我必须将block缩小到256。有人知道吗? 最佳答案 是的,这是可能的。大概您正在谈论的问题是registers-per-threadissue.在32位模式下,所有指针都是32位的,只需要一个

windows - 为什么我们可以在 DISPATCH LEVEL 或更高级别从非分页池访问内存

据我所知,如果IRQL级别是分派(dispatch)的,那么您可以从非分页池访问内存。如果我们将尝试从分页池访问内存。只是想知道为什么? 最佳答案 "whywecanaccessmemoryfromnonpagedpoolatoraboveDISPATCHLEVEL"是一个陈述,问题是为什么我们不能从分页池IRQL>=DISPATCH_LEVEL访问内存?嗯..."AnyroutinethatisrunningatgreaterthanIRQLAPC_LEVELcanneitherallocatememoryfrompagedpoo

Windows 命令外壳 : if-then-else weirdness for block statements

尝试设置一个简单的构建脚本,该脚本将根据其他环境变量扩展路径。这个小脚本运行良好:echooffcallc:\vstudio\vc\bin\vcvars32.batset_ISGIT=1echocurrentpathis%PATH%ifdefined_ISGITsetPATH=c:\git\bin;%PATH%但是如果我想根据_ISGIT变量的存在执行多行,那么我认为这会起作用echooffcallc:\vstudio\vc\bin\vcvars32.batset_ISGIT=1echocurrentpathis%PATH%ifdefined_ISGIT(setPATH=c:\git\

c++ - 将内存映射数据 block 读入结构

我今天一直在VC++2008上研究内存映射,但我仍然没有完全理解如何使用它或者它是否适合我的目的。我的目标是快速读取一个非常大的二进制文件。我有一个结构:typedefstruct_data{intnumber;charcharacter[512];float*entries;}Data;多次写入文件。“条目”变量是一个浮点小数数组。写入此文件后(10000个数据结构,每个“条目”数组为90000个float),我尝试使用以下函数内存映射此文件,以便我可以更快地读取数据。这是我到目前为止所拥有的:voidreadDataMmap(char*fname,//nameoffileconta

c++ - 为什么关闭 udp 套接字 block ?

我正在为Windows桌面/服务器编写一个UDP服务器应用程序。我的代码通过以下方式使用Windows建议的WSAAPI(这是我简化的receivePacket方法):structPacket{unsignedintsize;charbuffer[MAX_SIZE(1024)];}boolreceivePacket(Packetpacket){WSABUFFERwsa_buffer[2];wsa_buffer[0].buf=&packet.size;wsa_buffer[0].len=sizeof(packet.size);wsa_buffer[1].buf=packet.buffer

c++ - 如何使用 Code::Blocks 或 MinGW 在 Windows 上构建 CPP-NETLIB 库

Cpp-netlib的“入门”讨论了在结果应为的地方构建库:cppnetlib-client-connections.libcppnetlib-server-parsers.libcppnetlib-uri.lib它还提供了CMakeLists.txt来执行此操作,但我如何在Code::Blocks中构建它,或者更好的问题是如何使用MinGW构建库?我正在使用预装MinGW的Code::Blocks:mingw32-g++(tdm-1)4.7.1。我试图将所有源代码和header放入Code::Blocks项目并编译它,它已成功编译并运行,但它没有产生任何东西,我真的找不到解决我的问题

c++ - 文件未完全解密,AES CBC 模式。第一个 block 没有解密。 WCAPI

好的,我有5个文件正在加密。我没有设置IV。第一个文件解密没问题,然后剩余文件的第一个block不被解密。所以文件解密99%。我尝试将IV设置为静态值和随机值,结果相同。要100%解密,我加密的第一个文件不必是我解密的第一个文件。哪个让我相信它与解密有关?因此,为了加密,我导入了一个aeskey来创建一个key句柄。然后我加密一个文件并使用相同的key句柄移动到另一个文件...我应该为每个文件设置一个新的key句柄吗?是否有清除按键句柄的功能?有什么东西告诉我WCAPI正在使用上一个文件的最后一个block作为下一个文件的IV?如果我可能误解了什么,请原谅我。这里是decrypt_fi