Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C++ windows forms CLI

Danya Pupsik228322 Ученик (108), на голосовании 3 месяца назад
Как через button очистить RunMRU , при попытке билда вылазиет ошибка неизвестная лексема и вообще все что связано с stdcall
Голосование за лучший ответ
Татьяна Просветленный (36374) 4 месяца назад
Я понимаю, что вы пытаетесь создать кнопку в Windows Forms приложении на C++/CLI для очистки RunMRU (недавно запущенных программ), но сталкиваетесь с ошибками при компиляции. Давайте разберем этот вопрос по частям:

Очистка RunMRU:
Для очистки RunMRU вам нужно будет работать с реестром Windows. Вот пример кода, который можно использовать для этой цели:
 #include  
#include
#using

using namespace System;
using namespace Microsoft::Win32;

void ClearRunMRU()
{
try
{
RegistryKey^ key = Registry::CurrentUser->OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\RunMRU", true);
if (key != nullptr)
{
array^ valueNames = key->GetValueNames();
for each (String^ valueName in valueNames)
{
key->DeleteValue(valueName);
}
key->Close();
}
}
catch (Exception^ ex)
{
MessageBox::Show("Ошибка при очистке RunMRU: " + ex->Message);
}
}
Привязка к кнопке:
В обработчике события кнопки вы можете вызвать эту функцию:
 private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { 
ClearRunMRU();
MessageBox::Show("RunMRU очищен");
}
Ошибки при компиляции:
Ошибка "неизвестная лексема" и проблемы с stdcall могут возникать по нескольким причинам:

a) Убедитесь, что вы используете правильный тип проекта: CLR Windows Forms Application (.NET Framework).
b) Проверьте, что в настройках проекта выбран режим компиляции C++/CLI:

Правый клик на проект > Properties
C/C++ > General > Common Language Runtime Support > /clr

c) Если вы используете какие-то специфические Windows API функции, убедитесь, что у вас правильно подключены необходимые заголовочные файлы и библиотеки.
d) Проверьте, что вы не смешиваете неуправляемый код (native C++) с управляемым (C++/CLI) неправильным образом.
Похожие вопросы