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

error lnk2028 unresolved token extern c - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.72
Виктор_Сен
 Аватар для Виктор_Сен
30 / 23 / 1
Регистрация: 01.08.2011
Сообщений: 176
31.08.2011, 19:52     error lnk2028 unresolved token extern c #1
Здравствуйте. При компиляции такого примера
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++ Unresolved external symbol, unresolved token
Ошибка syntax error before `(' token C++
[ilink32 Error] Error: Unresolved external 'zamena (int * *) ' referenced C++
C++ [ILINK32 Error] Error: Unresolved external
C++ Error expected unqualified-id 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
3029 / 2350 / 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
Ответ Создать тему
Опции темы

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