- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 C++ 制作简单的 dll 数据包嗅探器,它将挂接到应用程序,并将接收到的数据包写入 INI 文件。不幸的是,在 20-30 分钟后,主要应用程序崩溃了。
当接收到数据包时,receivedPacket()
将被调用。 20 多分钟后,WriteCount 值约为 150,000-200,000.. 并开始出现 C++ 运行时错误/崩溃,GetLastError()
我得到的代码是 0x8,这是ERROR_NOT_ENOUGH_MEMORY,WritePrivateProfileStringA()
返回 0
void writeToINI(LPCSTR iSec,LPCSTR iKey,int iVal){
sprintf(inival, _T("%d"), iVal);
WritePrivateProfileStringA(iSec,iKey,inival,iniloc);
//sprintf(strc, _T("%d \n"), WriteCount);
//WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), strc, strlen(strc), 0, 0);
WriteCount++;
}
void receivedPacket(char *packet,WORD size){
switch ( packet[2] )
{
case 0x30:
// Size : 0x5F
ID = *(signed char*)&packet[0x10];
X = *(signed short*)&packet[0x20];
Y = *(signed short*)&packet[0x22];
Z = *(signed short*)&packet[0x24];
sprintf(inisec, _T("PACKET_%d"), (ID+1));
writeToINI(inisec,"id",ID);
writeToINI(inisec,"x",X);
writeToINI(inisec,"y",Y);
writeToINI(inisec,"z",Z);
}
[.....OTHER CASES.....]
}
谢谢:)
最佳答案
WritePrivateProfileString()
和 GetPrivateProfileString()
非常慢(由于每次调用都解析 INI 文件),您可以:
X=1---\n
更改为 X=100 -\n
(将 -
更改为空格),因此您的 key 大小不变,您可以 update only part of file ) )小提示:几年前我用GetPrivateProfileString()
读取设置文件(大约1KB大小),从HDD读取:50ms,从U盘读取:1000ms!,更改后( 1. 将文件读取到内存 2. 运行我自己的解析器)它在 HDD 和 USB 上都在 1ms 内运行。
关于c++ - ERROR_NOT_ENOUGH_MEMORY 使用 WritePrivateProfileString 写入 INI 时出错,调用 200k 次后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12024365/
我们使用的工具在内部使用简单的 Win-Api 调用 WritePrivateProfileString . 我知道定义标志 UNICODE 可以映射到 WritePrivateProfileStri
我正在使用 WritePrivateProfileString 函数在 ini 文件中写入一些属性,一切正常,但是当我添加多行文本时,出现问题。 这是代码和输出。 WritePrivateProfil
我正在尝试将文件路径保存在 ini 文件中,其中包含阿拉伯语文件夹。即 D:\ملف جديد\Checking Folder 但是在使用 WritePrivateProfileString() 将其
我如何找到运行我的可执行文件的当前驱动器名称? 我想使用 WritePrivateProfileString() 在 .ini 文件中保存一个字符串。我想让文件名通用,因为硬编码完整路径或驱动器名称不
有没有办法禁止 WritePrivateProfileString 写入注册表,而是使用我们提供给它的 ini 文件?我从 MSDN 上看到,您可以禁用文件写入并专门使用注册表,但反之则不行。我想让我
在我的 C# 应用程序中,我希望更新 INI 文件中的值。我使用了互操作服务并希望使用函数 WritePrivateProfileString。所以我像这样导入了 DLL: [DllImport("K
我正在使用 C++ 制作简单的 dll 数据包嗅探器,它将挂接到应用程序,并将接收到的数据包写入 INI 文件。不幸的是,在 20-30 分钟后,主要应用程序崩溃了。 当接收到数据包时,receive
我是一名优秀的程序员,十分优秀!