Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для Bogradan
7 / 6 / 1
Регистрация: 22.03.2016
Сообщений: 337

VSIX Installer сломал программу

27.02.2023, 01:26. Показов 1019. Ответов 15

Студворк — интернет-сервис помощи студентам
У меня в уведомлениях была такая программа называется "VSIX Installer" прямо в VS в обновлениях висела, я обновил чтобы не раздражало пускай думаю обновит VS мне. После обновления моя программа перестала работать, сначала жаловалась на то что WINAPI у меня нету в базе данных какой-то, теперь такие ошибки выдаёт как на фото. Я ничего в программе не менял, она работала, а часть ошибок просто не доделанные условия в функциях это было и работало и так. Сейчас вообще ничего не работает, объявленные переменные пишет не объявленные хотя я не менял ничего, ругался на WINAPI в файле .cpp мол его нет такого понятия, короче ужас какой-то. У меня мало времени на решение таких проблем, поэтому хочу узнать что-нибудь у вас уважаемые читатели. Можно это как-то исправить или мне VS переустанавливать полностью, может вирус? Обновления VS от Microsoft не первый раз мне программу ломают, такое было но в те разы VSIX Installer не был к этому причастен.
Код смотреть смысла нет, он рабочий, он перестал работать только из-за обновления.
Миниатюры
VSIX Installer сломал программу  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.02.2023, 01:26
Ответы с готовыми решениями:

Wizzard внутри VSIX (C#)
Возможно ли создать VSIX шаблон C#, содержащий в себе визард? Допустим, выбрав из combobox нужное поле, пользователь получает...

Не работает Windows Installer, не могу установить ни одну программу
Здравствуйте. Очень прошу помочь. Проблемы 3! но все по порядку.Ситуация такая. Ребенок влез в ноут. и теперь не работает виндовс...

Создание VSIX для сниппетов
Читаю документацию. Написано: Вопрос - в какое место в коде: <?xml version="1.0" encoding="utf-8" ?> <package...

15
Эксперт .NET
 Аватар для Rius
13121 / 7681 / 1675
Регистрация: 25.05.2015
Сообщений: 23,445
Записей в блоге: 14
27.02.2023, 05:49
Код показывайте.
1
 Аватар для Bogradan
7 / 6 / 1
Регистрация: 22.03.2016
Сообщений: 337
27.02.2023, 17:46  [ТС]
Rius, показать весь код для меня невозможно никак, потому что это коммерческий проект серьёзный для меня, но я вам дам часть кода где ошибка вылазит. Вся проблема в этой строке "MyForm2^ f = gcnew MyForm2();" Это у меня ошибку выдаёт, все ошибки только на этой одной строке.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#pragma once
#include "MyForm.h"
#include <iostream> 
#include <Windows.h>
#include <string>
#include <conio.h>
#include <atlstr.h>
#include <stdio.h>
#include <stdlib.h>
#include <vcclr.h>
#include <msclr\marshal.h>
#include <ctime>
namespace TechPrank {
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
    using namespace System::IO;
    using msclr::interop::marshal_context;
    /// <summary>
    /// Сводка для MyForm
    /// </summary>
    public ref class MyForm : public System::Windows::Forms::Form
    {
    public:
        MyForm(void)
        {
            InitializeComponent();
 
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~MyForm()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::FolderBrowserDialog^ folderBrowserDialog1;
    protected:
    private: System::Windows::Forms::Button^ button1;
    private: System::Windows::Forms::Button^ button2;
    private: System::Windows::Forms::Button^ button3;
 
           MyForm2^ f = gcnew MyForm2();
 
           //this->WindowState = FormWindowState::Minimized;
           //this->WindowState = FormWindowState::Normal;
           //===========================================================================================
    private:
        /// <summary>
        /// Обязательная переменная конструктора.
        /// </summary>
        System::ComponentModel::Container^ components;
C++
1
2
3
4
5
6
    private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { 
        if (block == 0) {
            f->Visible = true; block++; //<-ошибка, f: необъявленный идентификатор. Всё остальные ошибки на той стройке которую показал выше.
        }
        else { block = 0; f->Visible=false; }
    }
Спасибо вам большое за внимание, и что пытаетесь помочь. Я уже кстати создал проект заново код перекопировал с нуля но всё-равно ошибка, и это всё появилось у меня только из-за обновления какого-то **** плагина. Я пытался поменять #include -ды но не помогло.

Добавлено через 4 минуты
Мне кажется что настройки VS сбились из-за того обновления, ведь перестало работать именно после обновления. Переустановить чтоле...
0
Эксперт .NET
 Аватар для Rius
13121 / 7681 / 1675
Регистрация: 25.05.2015
Сообщений: 23,445
Записей в блоге: 14
27.02.2023, 18:24
Не видно include MyForm2.
Когда весь проект нельзя, делают минимально воспроизводимый пример.
Покажите список установленных расширений Visual Studio.
Миниатюры
VSIX Installer сломал программу  
1
 Аватар для Bogradan
7 / 6 / 1
Регистрация: 22.03.2016
Сообщений: 337
27.02.2023, 21:02  [ТС]
Вот 2ая форма и расширения:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#pragma once
#include "MyForm.h"
namespace TechPrank {
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
 
    /// <summary>
    /// Сводка для MyForm2
    /// </summary>
    public ref class MyForm2 : public System::Windows::Forms::Form
    {
    public:
        MyForm2(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~MyForm2()
        {
            if (components)
            {
                delete components;
            }
        }
 
    protected:
 
    protected:
 
    protected:
 
    protected:
 
    protected:
 
    private:
        /// <summary>
        /// Обязательная переменная конструктора.
        /// </summary>
        System::ComponentModel::Container^ components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Требуемый метод для поддержки конструктора — не изменяйте 
        /// содержимое этого метода с помощью редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->SuspendLayout();
            // 
            // MyForm2
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(9, 20);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(889, 433);
            this->ControlBox = false;
            this->Name = L"MyForm2";
            this->Text = L"Настройки управления";
            this->Load += gcnew System::EventHandler(this, &MyForm2::MyForm2_Load);
            this->ResumeLayout(false);
 
        }
#pragma endregion
    public: System::Void MyForm2_Load(System::Object^ sender, System::EventArgs^ e) {
        System::Windows::Forms::TextBox^ TBox = gcnew System::Windows::Forms::TextBox();
    }
    };
}
Я дописал в 1-ую форму
C++
1
#include "MyForm2.h"
Миниатюры
VSIX Installer сломал программу  
0
 Аватар для Bogradan
7 / 6 / 1
Регистрация: 22.03.2016
Сообщений: 337
27.02.2023, 21:13  [ТС]
MyForm.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
#include "MyForm.h"
#include "MyForm2.cpp"
#pragma comment(lib,"Winmm.lib")
using namespace TechPrank; // Название проекта
[STAThread]
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) {
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    Application::Run(gcnew MyForm);
    return 0;
}
2-ой cpp пуст.

Добавлено через 3 минуты
MyForm 1-ый без кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#pragma once
#include "MyForm.h"
#include <iostream> 
#include <Windows.h>
#include <string>
#include <conio.h>
#include <atlstr.h>
#include <stdio.h>
#include <stdlib.h>
#include <vcclr.h>
#include <msclr\marshal.h>
#include <ctime>
namespace TechPrank {
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
    using namespace System::IO;
    using msclr::interop::marshal_context;
    /// <summary>
    /// Сводка для MyForm
    /// </summary>
    public ref class MyForm : public System::Windows::Forms::Form
    {
    public:
        MyForm(void)
        {
            InitializeComponent();
 
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~MyForm()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::FolderBrowserDialog^ folderBrowserDialog1;
    protected:
    private: System::Windows::Forms::Button^ button1;
    private: System::Windows::Forms::Button^ button2;
    private: System::Windows::Forms::Button^ button3;
 
 
           //this->WindowState = FormWindowState::Minimized;
           //this->WindowState = FormWindowState::Normal;
           //===========================================================================================
    private:
        /// <summary>
        /// Обязательная переменная конструктора.
        /// </summary>
        System::ComponentModel::Container^ components;
        //===========================================================================================
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Требуемый метод для поддержки конструктора — не изменяйте 
        /// содержимое этого метода с помощью редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->folderBrowserDialog1 = (gcnew System::Windows::Forms::FolderBrowserDialog());
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->button2 = (gcnew System::Windows::Forms::Button());
            this->button3 = (gcnew System::Windows::Forms::Button());
            this->SuspendLayout();
            // 
            // button1
            // 
            this->button1->Location = System::Drawing::Point(12, 12);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(108, 48);
            this->button1->TabIndex = 0;
            this->button1->Text = L"Образ";
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &MyForm::button1_Click);
            // 
            // button2
            // 
            this->button2->Location = System::Drawing::Point(126, 12);
            this->button2->Name = L"button2";
            this->button2->Size = System::Drawing::Size(99, 48);
            this->button2->TabIndex = 1;
            this->button2->Text = L"Настройки";
            this->button2->UseVisualStyleBackColor = true;
            this->button2->Click += gcnew System::EventHandler(this, &MyForm::button2_Click);
            // 
            // button3
            // 
            this->button3->Location = System::Drawing::Point(231, 12);
            this->button3->Name = L"button3";
            this->button3->Size = System::Drawing::Size(49, 48);
            this->button3->TabIndex = 2;
            this->button3->Text = L"\?";
            this->button3->UseVisualStyleBackColor = true;
            this->button3->Click += gcnew System::EventHandler(this, &MyForm::button3_Click);
            // 
            // MyForm
            // 
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::None;
            this->ClientSize = System::Drawing::Size(512, 235);
            this->Controls->Add(this->button3);
            this->Controls->Add(this->button2);
            this->Controls->Add(this->button1);
            this->KeyPreview = true;
            this->Name = L"MyForm";
            this->Text = L"MyForm";
            this->Load += gcnew System::EventHandler(this, &MyForm::MyForm_Load);
            this->KeyDown += gcnew System::Windows::Forms::KeyEventHandler(this, &MyForm::MyForm_KeyDown);
            this->KeyPress += gcnew System::Windows::Forms::KeyPressEventHandler(this, &MyForm::MyForm_KeyPress);
            this->ResumeLayout(false);
 
        }
#pragma endregion
    private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
    }
    private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { 
    }
    private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
    }
    private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) {
    }
    private: System::Void MyForm_KeyPress(System::Object^ sender, System::Windows::Forms::KeyPressEventArgs^ e) {
    }
    void golos2() {
    }
    void clear() {
    }
    void golos() {
}
    void start() {
    }
    private: System::Void MyForm_KeyDown(System::Object^ sender, System::Windows::Forms::KeyEventArgs^ e) {
    }
};
}
0
Эксперт .NET
 Аватар для Rius
13121 / 7681 / 1675
Регистрация: 25.05.2015
Сообщений: 23,445
Записей в блоге: 14
27.02.2023, 21:13
Вот пример показа/скрытия второй формы. У вас заработает?
Вложения
Тип файла: zip Project1.zip (8.6 Кб, 2 просмотров)
1
 Аватар для Bogradan
7 / 6 / 1
Регистрация: 22.03.2016
Сообщений: 337
27.02.2023, 21:17  [ТС]
Да, заработал.
0
Эксперт .NET
 Аватар для Rius
13121 / 7681 / 1675
Регистрация: 25.05.2015
Сообщений: 23,445
Записей в блоге: 14
27.02.2023, 21:20
Раз заработал, дело не в студии, а в коде.
Ищите разницу...

Добавлено через 1 минуту
Иногда заголовочные файлы могут так пакостить.

На C# не перейти? Там проще.
1
 Аватар для Bogradan
7 / 6 / 1
Регистрация: 22.03.2016
Сообщений: 337
27.02.2023, 21:24  [ТС]
Спасибо за навод на ошибку, посмотрю перепроверю всё что смогу.
Я перейду обязательно на другой язык, но в этом проекте сейчас не могу переходить, мне надо конкретно этот проект доделать, потому что я его очень долго делал и переписывать программу на новый язык займёт гигантское количество времени у меня, и эта программа будет действительно многим нужна и полезна. Это мой последний проект на С++.
0
 Аватар для Bogradan
7 / 6 / 1
Регистрация: 22.03.2016
Сообщений: 337
27.02.2023, 21:35  [ТС]
Не знаете что это означает, может ответ кроется в этом?
Миниатюры
VSIX Installer сломал программу  
0
Эксперт .NET
 Аватар для Rius
13121 / 7681 / 1675
Регистрация: 25.05.2015
Сообщений: 23,445
Записей в блоге: 14
27.02.2023, 21:41
Лучший ответ Сообщение было отмечено Bogradan как решение

Решение

Может, там просто nullptr должен быть?

Ещё, возможно, при обновлении студии добавляются новые build tools. А старые могут удалиться. В инсталляторе можно их посмотреть.
0
 Аватар для Bogradan
7 / 6 / 1
Регистрация: 22.03.2016
Сообщений: 337
27.02.2023, 22:04  [ТС]
Да я помню он удалил какие-то инструменты писал и установил какие-то новые, а как вернуть назад я не знаю.

Добавлено через 2 минуты
заколебали со своими новшествами забагованными не нужными эти Microsoft.

Добавлено через 12 минут
Проект мне сломали *****
0
Эксперт .NET
 Аватар для Rius
13121 / 7681 / 1675
Регистрация: 25.05.2015
Сообщений: 23,445
Записей в блоге: 14
27.02.2023, 22:27
Вы использовали какие-то нестандартные фичи. Ну и сам по себе этот язык ужасен.

Можете вспомнить, когда всё работало, когда вы ставили студию. Какая это была дата и какая тогда была актуальная версия C++/CLI.
И посмотреть в новостях, что нового появилось в текущей версии, в сравнении с той.
1
 Аватар для Bogradan
7 / 6 / 1
Регистрация: 22.03.2016
Сообщений: 337
27.02.2023, 22:33  [ТС]
Я исправил ошибку, я даже не понял чё изменилось, просто воссоздал заного проект, код перекопировал, инклюды #include везде вставил где можно.
MyForm.h (1-ый)
C++
1
2
3
#include "MyForm.h"
#include "MyForm2.cpp"
#include "MyForm2.h"
MyForm.cpp (1-ый)
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "MyForm.h"
#include "MyForm2.cpp"
#include "MyForm2.h"
#pragma comment(lib,"Winmm.lib")
using namespace TechPrank; // Название проекта
[STAThread]
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) {
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    Application::Run(gcnew MyForm);
    return 0;
}
Добавлено через 4 минуты
Прокомментирую ваш комментарий: 1)Ну и сам по себе этот язык ужасен. 1. Я программировал только на 2-ух языках, С++ пол года последние и до этого это был Pascal ABC пол года, С++ чёкнутый язык для меня после Pascal ABC, я раньше на ABC Pascal программировал и он был намного понятнее и проще, и там всё работало без проблем схожие функции что и в этом проекте, тут ошибки тупо ни о чём не говорят, то что пишет в ошибках вообще отношения к правде не имеет никакого. Я 100% поменяю этот дурацкий С++, по нему ещё и информации мало в интернете, хотя не смотря на это я пол года тренировался и даже проект создал какой-то полезный для людей других, но это просто ад мглы даже если сравнивать с Pascal. Я планирую в будущем компьютерную игру делать и С++ меня разочаровывает пока что.

Посоветуйте мне какие языки на ваш взгляд самые лучшие?
0
Эксперт .NET
 Аватар для Rius
13121 / 7681 / 1675
Регистрация: 25.05.2015
Сообщений: 23,445
Записей в блоге: 14
27.02.2023, 22:38
Ужасен не сам C++, хотя он мне тоже не нравится. А вот эта смесь стандартного C++ с системой типов Net, прикрученной сбоку.

Язык - каждый для своей задачи и области применения.
Если оконный софт только под Windows, то C# + WinForms(просто) / WPF (мощно).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.02.2023, 22:38
Помогаю со студенческими работами здесь

Подключение к созданному через Microsoft VS installer project установщику программу
Я создал установщик, с помощью данного расширения, как мне к нему привязать кроме установки окна windows forms установку выбранной мною...

Visual Studio (2010) Extension .vsix
Как сделать подсветку строковых литералов и комментариев ? Скачал пример языка Ook. Но там лишь простые последовательности символов....

Всю голову себе сломал, но не смог понять как сделать эту программу
Есть 3 текстовых файла, два из них содержат последовательность положительных и отрицательных чисел, а в 3 нужно будет выводить итоги,...

Как интегрировать в программу Net Framework, чтобы она стала stand-alone (но не Installer) ?
Т.е. таким образом, чтобы не нужно было устанавливать в систему Net Framework... Возможно ли это и какими средствами?

Ошибка при установке любого расширения с помощью VSIX
Всем доброго времени суток! У меня возникает ошибка при установки любого расширения с помощью VSIX. После того как я нажимаю на кнопку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru