Как добавить значок в консольное приложение C ++?

Я пытаюсь добавить значок в мое консольное приложение C ++, но когда я пытаюсь скомпилировать следующий код, я получаю эти ошибки. Первый — это мой resources.rc, а второй — мой main.cpp.

Ресурсный скрипт:

#ifndef RESOURCE_RC_INCLUDED
#define RESOURCE_RC_INCLUDED

MAINICON  ICON  "icon.ico"
#endif // RESOURCE_RC_INCLUDED`

C ++ источник:

#include <iostream>
#include <cstdlib>
#include <string>
#include <ctime>
#include <windows.h>
#include <fstream>
#include "resources.rc"
using namespace std;

void SetWindow(int Width, int Height) {
_COORD coord;
coord.X = Width;
coord.Y = Height;

_SMALL_RECT Rect;
Rect.Top = 0;
Rect.Left = 0;
Rect.Bottom = Height - 1;
Rect.Right = Width - 1;

HANDLE Handle = GetStdHandle(STD_OUTPUT_HANDLE);      // Get Handle
SetConsoleScreenBufferSize(Handle, coord);            // Set Buffer Size
SetConsoleWindowInfo(Handle, TRUE, &Rect);            // Set Window Size
}int main() {

SetWindow(105, 30);
SetConsoleTitle("Shima Command Line");

int x;
char file;
string name, cmd, selPrg, title;
string cmds[] = {"(help)", "(information)", "(exit)", "(tell me a joke)", "(open)", "(start)", "(talk dirty to me)", "(what is your favorite color)", "(what is your favourite colour)", "(cls)", "(clear)", "(title)"};
string jokes[] = {"If your cold you should sit in a corner, it's 90 degrees.", "Knock Knock\nWho's there?\nJustin.\nJustin who?\nJustin time for dinner.", "Why did the chicken cross the road?\nTo get to the other side.", "Jokes aren't really my thing.", "I don't know any good jokes.", "What do you call a cow that just had a baby?\nDe-calf-inated. You know like coffee.", "What do you get from a pampered cow?\nSpoiled milk.", "What do you get if you divide the circumference of a pumpkin by it's diameter?\nPumpkin Pi.", "Did you hear about the two antennas that got married?\nThe ceremony was long and boring, but the reception was great!"};
string prg[] = {"chrome", "opera", "notepad++", "notepad", "firefox", "ie", "codeblocks", "audacity", "cmd"};
cout << "What is your name?" << endl;
getline(cin, name);
cout << "Hello, " << name << ", my name is Shima Josei. " << endl;

x = 10;
do {
cout << "How may I help you?" << endl;
getline(cin, cmd);
if (cmd == cmds[0] || cmd == cmds[1] || cmd == cmds[2] || cmd == cmds[3] || cmd == cmds[4] || cmd == cmds[5] || cmd == cmds[6] || cmd == cmds[7] || cmd == cmds[8] || cmd == cmds[9] || cmd == cmds[10] || cmd == cmds[11]) {
if (cmd == cmds[0]) {
cout << "\n\nclear - Shima will clear all text." << endl;
cout << "cls - Shima will clear the screen." << endl;
cout << "exit - Shima will exit the program you are currently using." << endl;
cout << "help - Shima will display the help menu." << endl;
cout << "information - Shima will display information about her." << endl;
cout << "open - Shima will open the specified program." << endl;
cout << "start - Shima will start the specified program." << endl;
cout << "talk dirty to me - Shima will talk dirty to you." << endl;
cout << "tell me a joke - Shima will tell you a joke." << endl;
cout << "title - Shima will change the title." << endl;
cout << "what is your favorite color - Shima will display her favorite color." << endl;
cout << "what is your favourite colour - Shima will display her favourite colour in United Kingdom English.\n\n" << endl;
}

if (cmd == cmds[1]) {
cout << "\n\nShima Command Line was developed at\nGigaboy Web Designs by Adam Oates.\nCopyright (C) 2016 Shima Command Line. All rights reserved.\n\n" << endl;
}

if (cmd == cmds[2]) {
exit(0);
}

if (cmd == cmds[3]) {
srand(time(0));

cout << "\n\n" << jokes[rand() % 9] << "\n\n" << endl;
}

if (cmd == cmds[4] || cmd == cmds[5]) {
cout << "\n\nWhat program would you like to open?" << endl;
getline(cin, selPrg);
if (selPrg == prg[0] || selPrg == prg[1] || selPrg == prg[2] || selPrg == prg[3] || selPrg == prg[4] || selPrg == prg[5] || selPrg == prg[6] || selPrg == prg[7] || selPrg == prg[8]) {
if (selPrg == prg[0]) {
cout << "\n\nOpening Google Chrome..." << endl;
ShellExecute(NULL, "open", "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe", NULL, NULL, SW_SHOWDEFAULT);
cout << "Successfully opened Google Chrome.\n\n" << endl;
}

if (selPrg == prg[1]) {
cout << "\n\nOpening Opera..." << endl;
ShellExecute(NULL, "open", "C:/Program Files/Opera/launcher.exe", NULL, NULL, SW_SHOWDEFAULT);
cout << "Successfully opened Opera.\n\n" << endl;
}

if (selPrg == prg[2]) {
cout << "\n\nOpening Notepad++..." << endl;
ShellExecute(NULL, "open", "C:/Program Files (x86)/Notepad++/notepad++.exe", NULL, NULL, SW_SHOWDEFAULT);
cout << "Successfully opened Notepad++.\n\n" << endl;
}

if (selPrg == prg[3]) {
cout << "\n\nOpening Notepad..." << endl;
ShellExecute(NULL, "open", "C:/Windows/notepad.exe", NULL, NULL, SW_SHOWDEFAULT);
cout << "Successfully opened Notepad.\n\n" << endl;
}

if (selPrg == prg[4]) {
cout << "\n\nOpening Mozilla Firefox..." << endl;
ShellExecute(NULL, "open", "C:/Program Files (x86)/Mozilla Firefox/firefox.exe", NULL, NULL, SW_SHOWDEFAULT);
cout << "Successfully opened Mozilla Firefox.\n\n" << endl;
}

if (selPrg == prg[5]) {
cout << "\n\nOpening Internet Explorer..." << endl;
ShellExecute(NULL, "open", "C:/Program Files/Internet Explorer/iexplorer.exe", NULL, NULL, SW_SHOWDEFAULT);
cout << "Successfully opened Internet Explorer.\n\n" << endl;
}

if (selPrg == prg[6]) {
cout << "\n\nOpening Code::Blocks..." << endl;
ShellExecute(NULL, "open", "C:/Program Files (x86)/CodeBlocks/codeblocks.exe", NULL, NULL, SW_SHOWDEFAULT);
cout << "Successfully opened Code::Blocks.\n\n" << endl;
}

if (selPrg == prg[7]) {
cout << "\n\nOpening Audacity..." << endl;
ShellExecute(NULL, "open", "C:/Program Files (x86)/Audacity/audacity.exe", NULL, NULL, SW_SHOWDEFAULT);
cout << "Successfully opened Audacity.\n\n" << endl;
}

if (selPrg == prg[8]) {
cout << "\n\nOpening Command Prompt..." << endl;
ShellExecute(NULL, "open", "C:/Windows/System32/cmd.exe", NULL, NULL, SW_SHOWDEFAULT);
cout << "Successfully opened Command Prompt.\n\n" << endl;
}
} else {
cout << "\n\nI'm sorry, " << name << ", but I don't recognize that program name." << endl;
}
}

if (cmd == cmds[6]) {
srand(time(0));
cout << "\n\nDirt, soil earth, rocks, and mud.\n\n" << endl;
}

if (cmd == cmds[7]) {
cout << "\n\nMy favorite color is... well I guess I've never had a favorite color.\n\n" << endl;
}

if (cmd == cmds[8]) {
cout << "\n\nMy favourite colour is... well I guess I have never had a favourite colour.\n\n" << endl;
}

if (cmd == cmds[9] || cmd == cmds[10]) {
system("CLS");
}

if (cmd == cmds[11]) {
cout << "\n\nWhat would you like the title to be?" << endl;
getline(cin, title);
SetConsoleTitle(title.c_str());
cout << "\n\n" << endl;
}
} else {
cout << "\n\nI'm sorry, " << name << ", but I don't understand that command.\n\n" << endl;
}
} while (x = 10);

return 0;

}

Это ошибки, которые я получаю.

|| === Сборка: отладка в Shima (компилятор: GNU GCC Compiler) === |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ resources.rc | 4 | error: «MAINICON» не называет тип |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp || В функции 'int main ()': |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 35 | ошибка: 'строка' не была объявлена ​​в этой области |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 35 | примечание: предлагаемая альтернатива: |
c: \ program files (x86) \ codeblocks \ mingw \ bin \ .. \ lib \ gcc \ mingw32 \ 4.7.1 \ include \ c ++ \ bits \ stringfwd.h | 65 | примечание: 'std :: string' |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 35 | ошибка: ожидается ';' перед «именем» |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 36 | ошибка: ожидается ';' до «cmds» |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 37 | ошибка: ожидается ';' перед «шутками» |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 38 | ошибка: ожидается ';' до 'prg' |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 39 | ошибка: 'cout' не был объявлен в этой области |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 39 | примечание: предлагаемая альтернатива: |
c: \ program files (x86) \ codeblocks \ mingw \ bin \ .. \ lib \ gcc \ mingw32 \ 4.7.1 \ include \ c ++ \ iostream | 62 | note: 'std :: cout' |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 39 | ошибка: 'endl' не был объявлен в этой области |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 39 | примечание: предлагаемая альтернатива: |
c: \ program files (x86) \ codeblocks \ mingw \ bin \ .. \ lib \ gcc \ mingw32 \ 4.7.1 \ include \ c ++ \ ostream | 562 | note: 'std :: endl' |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 40 | ошибка: 'cin' не был объявлен в этой области |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 40 | примечание: предлагаемая альтернатива: |
c: \ program files (x86) \ codeblocks \ mingw \ bin \ .. \ lib \ gcc \ mingw32 \ 4.7.1 \ include \ c ++ \ iostream | 61 | note: 'std :: cin' |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 40 | ошибка: 'имя' не было объявлено в этой области |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 40 | ошибка: 'getline' не был объявлен в этой области |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 40 | примечание: предлагаемая альтернатива: |
c: \ program files (x86) \ codeblocks \ mingw \ bin \ .. \ lib \ gcc \ mingw32 \ 4.7.1 \ include \ c ++ \ bits \ basic_string.h | 2792 | примечание: 'std :: getline' |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 46 | ошибка: 'cmd' не был объявлен в этой области |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 47 | ошибка: 'cmds' не был объявлен в этой области |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 74 | ошибка: «шутки» не были объявлены в этой области |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 79 | ошибка: 'selPrg' не был объявлен в этой области |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 80 | ошибка: 'prg' не был объявлен в этой области |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 158 | ошибка: 'title' не был объявлен в этой области |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 165 | предупреждение: предлагать круглые скобки вокруг назначения, используемого в качестве значения истинности [-Wparentheses] |
C: \ Users \ Adam \ Desktop \ C ++ Tutorial \ Shima \ main.cpp | 34 | предупреждение: неиспользуемая переменная 'file' [-Wunused-variable] |
|| === Сбой сборки: 17 ошибок, 2 предупреждения (0 минут, 1 секунда) === |

3

Решение

В исходном файле вы должны включить заголовочный файл resource.h а не ресурсный скрипт resource.rc, Затем перекомпилируйте проект.

Заголовочный файл:

    #define MAINICON 101    

Исходный файл C ++:

#include <iostream>
#include ...
#include "resource.h"
using namespace std;
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]