Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.72
Виктор_Сен
 Аватар для Виктор_Сен
30 / 23 / 1
Регистрация: 01.08.2011
Сообщений: 176
#1

error lnk2028 unresolved token extern c - C++

31.08.2011, 19:52. Просмотров 3068. Ответов 3
Метки нет (Все метки)

Здравствуйте. При компиляции такого примера
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Test6.cpp : main project file.
 
#include "stdafx.h"
#include <Windows.h>
#include <iostream>
using namespace std;
 
using namespace System;
 
int main(array<System::String ^> ^args)
{
    wchar_t *inStr=L"Привет";
    char *outStr=new char[7];
    CharToOem(inStr,outStr);
    cout<<outStr<<'\n';
    system("pause");
           return 0;
}
получаю ошибку "error LNK2028: unresolved token (0A000298) "extern "C" int __stdcall CharToOemW(wchar_t const *,char *)" (?CharToOemW@@$$J18YGHPB_WPAD@Z) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z) Test6.obj Test6" Подскажите, что делать?

Добавлено через 12 минут
Я нашёл ответ! Гугл рулит! Нужно добавить "#pragma comment(lib,"user32.lib")" в проект
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2011, 19:52     error lnk2028 unresolved token extern c
Посмотрите здесь:

C++ error LNK2019: unresolved external symbol
C++ Unresolved external symbol, unresolved token
[Linked Error] Unresolved External C++
Ошибка syntax error before `(' token C++
C++ Error: a function-definition is not allowed here before '{' token|
C++ [ILINK32 Error] Error: Unresolved external
C++ Error expected unqualified-id before '{' token c++
Error: expected ')' before ';' token C++
Error LNK2028, LNK2019, LNK1120: 2 неразрешенных внешних элементов C++
Visual c++ Ошибка 1 error LNK2028: ссылка на неразрешенную лексему (0A00004B) C++
Error expected unqualified-id before '{' token C++
Error: expected primary-expression before '==' token C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
31.08.2011, 20:13     error lnk2028 unresolved token extern c #2
Цитата Сообщение от Виктор_Сен Посмотреть сообщение
int main(array<System::String ^> ^args
- Зачем сие???
Напиши по простому
C++
1
 int main(){
Цитата Сообщение от Виктор_Сен Посмотреть сообщение
wchar_t *inStr=L"Привет";
* * * * char *outStr=new char[7];
* * * * CharToOem(inStr,outStr);
* * * * cout<<outStr<<'\n';
Всё это можно было записать вот так
C++
1
2
3
char chBuf[] = "Привет";
CharToOem(chBuf,chBuf);
cout<<chBuf<<"\r\n";
Виктор_Сен
 Аватар для Виктор_Сен
30 / 23 / 1
Регистрация: 01.08.2011
Сообщений: 176
31.08.2011, 21:55  [ТС]     error lnk2028 unresolved token extern c #3
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Всё это можно было записать вот так
Код C++1
2
3 char chBuf[] = "Привет";
CharToOem(chBuf,chBuf);
cout<<chBuf<<"\r\n";
Так не получится, компилятор ругается: "error C2664: 'CharToOemW' : cannot convert parameter 1 from 'char [7]' to 'LPCWSTR' i:\doc\dev\C++ Visual Studio\Test6\Test6\Test6.cpp 19 Test6"

Добавлено через 2 минуты
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Сообщение от Виктор_Сен
int main(array<System::String ^> ^args
- Зачем сие???
Напиши по простому
Код C++1 int main(){
Это не я писал, это компилятор так написал когда я проект создавал. Просто мне не охота за ним стирать.

Добавлено через 1 час 28 минут
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Всё это можно было записать вот так
Код C++1
2
3 char chBuf[] = "Привет";
CharToOem(chBuf,chBuf);
cout<<chBuf<<"\r\n";
Так можно, если использавать функцию CharToOemA, она работает с со строками из однобайтных сиволов, а функция CharToOem переводит из строки двухбайтных символов в строку с однобайтными символами.
kazak
 Аватар для kazak
3030 / 2351 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
01.09.2011, 03:34     error lnk2028 unresolved token extern c #4
Виктор_Сен, CharToOem это макрос. При компиляции, в зависимости от настроек проекта, он заменяется либо на CharToOemA, либо на CharToOemW.
Yandex
Объявления
01.09.2011, 03:34     error lnk2028 unresolved token extern c
Ответ Создать тему
Опции темы

Текущее время: 20:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru