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

Код работает в консоли но сыпет ошибками в CLI

14.10.2022, 16:48. Показов 1028. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую, подскажите пожалуйста почему код, к примеру вот этот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <Windows.h>
#include <iostream>
using namespace std;
 
 
int main()
{
    HKEY hKey;
    DWORD dwDisposition;
    unsigned char szStr[2];
    szStr[0] = '2'; szStr[1] = '\0';
 
    RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\AMDLOG"), 0, KEY_ALL_ACCESS, &hKey);
    RegSetValueEx(hKey, TEXT("path"), NULL, REG_SZ, szStr, sizeof(szStr)) == ERROR_SUCCESS;
    
    RegCloseKey(hKey);  
}
в консольном приложении работает успешно а в CLI плюется ошибками:

Code
1
2
3
4
5
6
7
Ошибка    LNK2028 ссылка на неразрешенную лексему (0A000445) "extern "C" long __cdecl RegCloseKey(struct HKEY__ *)" (?RegCloseKey@@$$J0YAJPEAUHKEY__@@@Z) в функции "int __clrcall main(cli::array<System::PE$AAVString >^)" (?main@@$$HYMHP$01EAPE$AAVString@System@@@Z) MyEnglish   D:\C++\Projects\MyEnglish\MyMain.obj    1   
Ошибка    LNK2028 ссылка на неразрешенную лексему (0A0004EB) "extern "C" long __cdecl RegSetValueExW(struct HKEY__ *,wchar_t const *,unsigned long,unsigned long,unsigned char const *,unsigned long)" (?RegSetValueExW@@$$J0YAJPEAUHKEY__@@PEB_WKKPEBEK@Z) в функции "int __clrcall main(cli::array<System::PE$AAVString >^)" (?main@@$$HYMHP$01EAPE$AAVString@System@@@Z)   MyEnglish   D:\C++\Projects\MyEnglish\MyMain.obj    1   
Ошибка    LNK2028 ссылка на неразрешенную лексему (0A00053D) "extern "C" long __cdecl RegOpenKeyExW(struct HKEY__ *,wchar_t const *,unsigned long,unsigned long,struct HKEY__ * *)" (?RegOpenKeyExW@@$$J0YAJPEAUHKEY__@@PEB_WKKPEAPEAU1@@Z) в функции "int __clrcall main(cli::array<System::PE$AAVString >^)" (?main@@$$HYMHP$01EAPE$AAVString@System@@@Z)   MyEnglish   D:\C++\Projects\MyEnglish\MyMain.obj    1   
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "extern "C" long __cdecl RegOpenKeyExW(struct HKEY__ *,wchar_t const *,unsigned long,unsigned long,struct HKEY__ * *)" (?RegOpenKeyExW@@$$J0YAJPEAUHKEY__@@PEB_WKKPEAPEAU1@@Z) в функции "int __clrcall main(cli::array<System::PE$AAVString >^)" (?main@@$$HYMHP$01EAPE$AAVString@System@@@Z).    MyEnglish   D:\C++\Projects\MyEnglish\MyMain.obj    1   
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "extern "C" long __cdecl RegSetValueExW(struct HKEY__ *,wchar_t const *,unsigned long,unsigned long,unsigned char const *,unsigned long)" (?RegSetValueExW@@$$J0YAJPEAUHKEY__@@PEB_WKKPEBEK@Z) в функции "int __clrcall main(cli::array<System::PE$AAVString >^)" (?main@@$$HYMHP$01EAPE$AAVString@System@@@Z).    MyEnglish   D:\C++\Projects\MyEnglish\MyMain.obj    1   
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "extern "C" long __cdecl RegCloseKey(struct HKEY__ *)" (?RegCloseKey@@$$J0YAJPEAUHKEY__@@@Z) в функции "int __clrcall main(cli::array<System::PE$AAVString >^)" (?main@@$$HYMHP$01EAPE$AAVString@System@@@Z).  MyEnglish   D:\C++\Projects\MyEnglish\MyMain.obj    1   
Ошибка    LNK1120 неразрешенных внешних элементов: 6 MyEnglish   D:\C++\Projects\MyEnglish\x64\Debug\MyEnglish.exe   1
При чем это касается не только конкретно этого кода. Подобные ошибки о неразрешенном внешнем символе и лексеме одолевают практически с любым другим кодом. Поиск ничего конкретного не дал.
С++ само собой только осваиваю
Осваиваю в Visual Studio
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.10.2022, 16:48
Ответы с готовыми решениями:

RAM сыпет ошибками
Я пытался переустановить Windows своему другу.У него не устанавливается Windows 7(у него ноутбук Acer Aspire E1-531g). При установке...

Seagate сыпет ошибками
Вкратце суть такова,возникла необходимость увеличить память,денег было мало ) Взял б/у винт у человечка,первое время он работал...

Б\У внешний HDD сыпет ошибками
Доброй ночи форумчане! Купил б/у внешний жесткий диск Seagate Model: ST500LM012 После покупки диск отформатировали и решили записать на...

2
3 / 2 / 2
Регистрация: 17.11.2021
Сообщений: 60
18.11.2022, 18:27
Компоновщик -> Система -> Подcистема и выбираешь Windows
0
2 / 2 / 0
Регистрация: 01.04.2017
Сообщений: 30
06.01.2026, 23:17
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
#pragma once
#include <iostream>
#include <windows.h>
#include <tchar.h>
#include <stdlib.h>
 
namespace Project1 {
    
    
 
 
    void ComPortInfo(char*** DATA)
    {
    
        TCHAR* bufferName = NULL;
        TCHAR* bufferData = NULL;
        unsigned long NameLen = 0, type = 0, DataLen = 0, CountValues = 0, MaxValueNameLen = 0, MaxValueLen = 0;
        size_t a = 0;
        int amount = 0;
 
        HKEY hkey = NULL;
        //Открываем раздел реестра, в котором хранится иинформация о COM портах
        int r = RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("HARDWARE\\DEVICEMAP\\SERIALCOMM\\"), 0, KEY_READ, &hkey);
        if (r != ERROR_SUCCESS)
            return;
 
 
        //Получаем информацию об открытом разделе реестра
        RegQueryInfoKey(hkey, NULL, NULL, NULL, NULL, NULL, NULL, &CountValues, &MaxValueNameLen, &MaxValueLen, NULL, NULL);
        ++MaxValueNameLen;
        //Выделяем память
 
        bufferName = new TCHAR[MaxValueNameLen * sizeof(TCHAR)];
        if (!bufferName)
        {
            RegCloseKey(hkey);
            return;
        }
        bufferData = new TCHAR[(MaxValueLen + 1) * sizeof(TCHAR)];
        if (!bufferData)
        {
            delete[] bufferName;
            RegCloseKey(hkey);
            return;
        }
        amount = CountValues;
 
        *DATA = new char* [CountValues];
        //создаю двумерный массив для добавления инфы по компортам
        for (int i = 0; i < (int)CountValues; i++) {
            *DATA[i] = new char[MaxValueLen];
        };
 
 
        //Цикл перебора параметров раздела реестра
        for (unsigned int i = 0; i < CountValues; i++)
        {
            NameLen = MaxValueNameLen;
            DataLen = MaxValueLen;
            r = RegEnumValue(hkey, i, bufferName, &NameLen, NULL, &type, (LPBYTE)bufferData, &DataLen);
            if ((r != ERROR_SUCCESS) || (type != REG_SZ))
                continue;
            wcstombs_s(&a, *DATA[i], (size_t)sizeof(*DATA[i]) + 1, bufferData, (size_t)sizeof(*DATA[i]));
 
 
        }
 
        RegCloseKey(hkey);
    };
Коллеги, ситуация схожая, но не сработало выставление через компоновщик подсистемы.
Как и у Sloneny все работало прекрасно в консольном приложении, а в CLI все. Ругается
Code
1
2
3
4
5
6
7
8
9
10
11
12
1>------ Сборка начата: проект: Project1, Конфигурация: Debug x64 ------
1>MyForm.obj : обнаружен модуль MSIL; для MSIL последовательная компоновка отключена; выполняется полная компоновка
1>MyForm.obj : error LNK2028: ?????? ?? ????????????? ??????? (0A00043A) "extern "C" long __cdecl RegCloseKey(struct HKEY__ *)" (?RegCloseKey@@$$J0YAJPEAUHKEY__@@@Z) ? ??????? "void __cdecl Project1::ComPortInfo(char * * *)" (?ComPortInfo@Project1@@$$FYAXPEAPEAPEAD@Z)
1>MyForm.obj : error LNK2028: ?????? ?? ????????????? ??????? (0A000442) "extern "C" long __cdecl RegQueryInfoKeyW(struct HKEY__ *,wchar_t *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,struct _FILETIME *)" (?RegQueryInfoKeyW@@$$J0YAJPEAUHKEY__@@PEA_WPEAK22222222PEAU_FILETIME@@@Z) ? ??????? "void __cdecl Project1::ComPortInfo(char * * *)" (?ComPortInfo@Project1@@$$FYAXPEAPEAPEAD@Z)
1>MyForm.obj : error LNK2028: ?????? ?? ????????????? ??????? (0A00052F) "extern "C" long __cdecl RegOpenKeyExW(struct HKEY__ *,wchar_t const *,unsigned long,unsigned long,struct HKEY__ * *)" (?RegOpenKeyExW@@$$J0YAJPEAUHKEY__@@PEB_WKKPEAPEAU1@@Z) ? ??????? "void __cdecl Project1::ComPortInfo(char * * *)" (?ComPortInfo@Project1@@$$FYAXPEAPEAPEAD@Z)
1>MyForm.obj : error LNK2028: ?????? ?? ????????????? ??????? (0A000586) "extern "C" long __cdecl RegEnumValueW(struct HKEY__ *,unsigned long,wchar_t *,unsigned long *,unsigned long *,unsigned long *,unsigned char *,unsigned long *)" (?RegEnumValueW@@$$J0YAJPEAUHKEY__@@KPEA_WPEAK22PEAE2@Z) ? ??????? "void __cdecl Project1::ComPortInfo(char * * *)" (?ComPortInfo@Project1@@$$FYAXPEAPEAPEAD@Z)
1>MyForm.obj : error LNK2019: ?????? ?? ????????????? ??????? ?????? "extern "C" long __cdecl RegOpenKeyExW(struct HKEY__ *,wchar_t const *,unsigned long,unsigned long,struct HKEY__ * *)" (?RegOpenKeyExW@@$$J0YAJPEAUHKEY__@@PEB_WKKPEAPEAU1@@Z) ? ??????? "void __cdecl Project1::ComPortInfo(char * * *)" (?ComPortInfo@Project1@@$$FYAXPEAPEAPEAD@Z).
1>MyForm.obj : error LNK2019: ?????? ?? ????????????? ??????? ?????? "extern "C" long __cdecl RegQueryInfoKeyW(struct HKEY__ *,wchar_t *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,struct _FILETIME *)" (?RegQueryInfoKeyW@@$$J0YAJPEAUHKEY__@@PEA_WPEAK22222222PEAU_FILETIME@@@Z) ? ??????? "void __cdecl Project1::ComPortInfo(char * * *)" (?ComPortInfo@Project1@@$$FYAXPEAPEAPEAD@Z).
1>MyForm.obj : error LNK2019: ?????? ?? ????????????? ??????? ?????? "extern "C" long __cdecl RegCloseKey(struct HKEY__ *)" (?RegCloseKey@@$$J0YAJPEAUHKEY__@@@Z) ? ??????? "void __cdecl Project1::ComPortInfo(char * * *)" (?ComPortInfo@Project1@@$$FYAXPEAPEAPEAD@Z).
1>MyForm.obj : error LNK2019: ?????? ?? ????????????? ??????? ?????? "extern "C" long __cdecl RegEnumValueW(struct HKEY__ *,unsigned long,wchar_t *,unsigned long *,unsigned long *,unsigned long *,unsigned char *,unsigned long *)" (?RegEnumValueW@@$$J0YAJPEAUHKEY__@@KPEA_WPEAK22PEAE2@Z) ? ??????? "void __cdecl Project1::ComPortInfo(char * * *)" (?ComPortInfo@Project1@@$$FYAXPEAPEAPEAD@Z).
1>C:\Users\chern\source\repos\Project1\x64\Debug\Project1.exe : fatal error LNK1120: ????????????? ??????? ?????????: 8
1>Сборка проекта "Project1.vcxproj" завершена с ошибкой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.01.2026, 23:17
Помогаю со студенческими работами здесь

У меня есть работающий код, но работает он с ошибками, не знаю как исправить
Лектор сказал что в моем коде нет показательности работы, то есть сначала вывод сгенерированной строки, а потом результирующей после...

Есть код, но он работает с ошибками и идёт исключение. Можете посмотреть что не так
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; //Дана целочисленная квадратная матрица размера N×N.Вычислить сумму ...

Графика в консоли - не работает код
помогите. почему моя программа ни до конца работает?:( int i = 0; int j = 0; while (i&lt;13) { ...

Не работает простейший код в консоли браузера
Система Debian. Браузер Firefox. Код такой: const controller = new AbortController(); const timeoutValue = 60000; const timeout =...

Скомпилированный код работает не так как в консоли
Ссылка на гитхаб https://github.com/Congrammer/bitgen-by-congrammer , все работает идеально когда запускаю код через cmd консоль, но когда...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru