так этот код снипит:
static void Main(string[] args)
{
Console.WriteLine("Memory mapped file reader started");
using (var file = MemoryMappedFile.OpenExisting("AIDA64_SensorValues"))
{
using (var reader = file.CreateViewAccessor())
{
var bytes = new byte[3388];
var encoding = Encoding.ASCII;
XmlDocument document = new XmlDocument();
document.LoadXml("<root>" + encoding.GetString(bytes) + "</root>");
XmlNode node = document.DocumentElement.SelectSingleNode("//value");
Console.WriteLine("node = " + node);
}
}
Console.WriteLine("Press any key to exit ...");
Console.ReadLine();
}
читает информацию из этой общей памяти (снипит):
<sys><id>SCPUCLK</id><label>CPU Clock</label><value>2930</value></sys><sys><id>SCPUMUL</id><label>CPU Multiplier</label><value>11.0</value></sys>
и читает значение во всех <value></value>
, затем печатает его.
но это не работает совсем правильно, я получаю недопустимый символ "." исключение, когда он работает.
поэтому я попытался изменить "новый байт [3388];" вся длина строки без <root></root>
составляет 3388 (напечатано в TXT-файл на hdd, чтобы выяснить это), поэтому я добавил 13 и получил 3401 (потому что это - длина корневых тегов, которые мне пришлось добавить, чтобы исправить несколько корневая ошибка)
но я все еще получаю сообщение об ошибке "'.', Недопустимое шестнадцатеричное значение 0x00. Строка 1, позиция 7."
спасибо