VS6 раньше позволяла Вам определить значения в autoexp файле, которые позволяют Вам пропустить продвижение в общие функции (например, представить конструкторов в виде строки). При запуске с VS7 эти исключения были перемещены в реестр. Простота использования получает серьезный удар.
В VS7 и более высокой Microsoft, в их мудрости, переместил эти исключения в реестр. Вот некоторые примеры:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\NativeDE\StepOver]
"10"="CString\\:\\:CString=NoStepInto"
"11"=".*\\.c_str.*=NoStepInto"
Ключевые имена представляют поисковый порядок. Значения ключа содержат регулярные выражения VS для поиска.
, Если Вы создаете свои собственные исключения, убедиться завоевать репутацию из представления дизассемблирования. Объявление в источнике не может соответствовать сгенерированному имени компилятора, специально для шаблонных функций.
Я нашел свою ошибку в: http://www.pinvoke.net/default.aspx/kernel32/GlobalMemoryStatusEx.html
Я изменил
internal static extern bool GlobalMemoryStatusEx(ref MEMORYSTATUSEX lpBuffer);
на
static extern bool GlobalMemoryStatusEx([In, Out] MEMORYSTATUSEX lpBuffer);
и изменил
GlobalMemoryStatusEx(ref statEX);
на
GlobalMemoryStatusEx(statEX);
Он работает правильно. Танки
Если c #, вы можете:
Ссылаться на сборку Microsoft.VisualBasic
.
Затем импортируйте пространство имен Microsoft.VisualBasic.Devices
.
И, наконец, используйте ComputerInfo, чтобы получить общий объем физической памяти.
int bytesPerMebibyte = (1 << 20); // http://physics.nist.gov/cuu/Units/binary.html
ComputerInfo myCompInfo = new ComputerInfo();
string physicalMemory = "Physical Memory: "
+ (myCompInfo.TotalPhysicalMemory / bytesPerMebibyte) + " MB";
Как насчет:
My.Computer.Info.TotalPhysicalMemory
My.Computer.Info.AvailablePhysicalMemory
вы можете использовать следующие шаблоны:
long memory = Process.GetCurrentProcess().PeakVirtualMemorySize64;
И еще свойства с именами Peak * 64
Вы забыли установить statEX.dwLength
перед вызовом GlobalMemoryStatusEx
.
MEMORYSTATUSEX statEX = new MEMORYSTATUSEX();
statEX.dwLength = (uint)Marshal.SizeOf(typeof(MEMORYSTATUSEX));
GlobalMemoryStatusEx(ref statEX);