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

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

Войти
Регистрация
Восстановить пароль
 
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
#1

Ошибка линковки - C++

24.07.2013, 11:55. Просмотров 804. Ответов 11
Метки нет (Все метки)

Ругается на:
Кликните здесь для просмотра всего текста
1>Generating Code...
1>Skipping... (no relevant changes detected)
1>WinMain.cpp
1>Linking...
1>Parser.obj : error LNK2019: unresolved external symbol __imp__PathFileExistsW@4 referenced in function "private: bool __thiscall CParser::IsFileExist(void)" (?IsFileExist@CParser@@AAE_NXZ)
1>c:\Users\vbloodv\Documents\Visual Studio 2008\Projects\ecad\bin\\ecad.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:\Users\vbloodv\Documents\Visual Studio 2008\Projects\ecad\intermediate\BuildLog.htm"
1>ecad - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


Код функции:
C++
1
2
3
4
5
bool CParser::IsFileExist()
{
    if ( PathFileExistsW( path_file.c_str() ) ) return true;
    return false;
}
структура:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#pragma once
#include <Windows.h>
#include <Shlwapi.h>
#include <io.h>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <vector>
#include <string>
#include "userfn.h"
#include "usertypes.h"
 
#include "engine/Object.h"
class CParser
{
//field:
    std::wstring path_file;
public:
    void LoadFromEcad(CObject & object, const std::wstring & path);
private:
    inline bool IsFileExist();
};
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2013, 11:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка линковки (C++):

Ошибка линковки - C++
Здравствуйте. Создаю многофайловую программу. При компиляции всё замечательно, а потом возникает следующая ошибка: Error 2 error...

Ошибка линковки - C++
Добрый вечер,подскажите как исправить ошибку линковки? мой код: #include&lt;fstream.h&gt; #include&lt;windows.h&gt; void create_file(int...

Ошибка линковки - C++
Как исправить эту ошибку линковки? LRESULT CALLBACK WndProc(HWND, UINT , WPARAM, LPARAM); // Прототип функции WndProc BOOL...

ошибка линковки - C++
int main() { return 0; } делаю так: в MSVC++ создаю проект консоли, выбираю пустой проект, затем создаю файл кода с++, пишу эти...

Ошибка линковки - C++
Всем привет! Пишу программу на С++ в среде VS2008, чудеса происходят, в ходе редактирования кода и его дополнения, соответственно...

Ошибка линковки - C++
Всем привет. Столкнулся со следующей проблемой. в программе 9 файлов. 4 .h, 4 .cpp и main.cpp. взаимодействуют между собой вот так - 2, 3,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
0x10
2464 / 1636 / 238
Регистрация: 24.11.2012
Сообщений: 4,031
24.07.2013, 11:59 #2
vbloodv, метод инлайн, а тело черти где.
1
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
24.07.2013, 12:21  [ТС] #3
Цитата Сообщение от 0x10 Посмотреть сообщение
метод инлайн, а тело черти где.
Ошибка не инлайн, это я оставил случайно эксперементировал... (программирование перебором)

Вот так для наглядности:
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
#pragma once
#include'ы
[SPOILER]#include <Windows.h>
#include <Shlwapi.h>
#include <io.h>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <vector>
#include <string>
#include "userfn.h"
#include "usertypes.h"
[/SPOILER]
#include "engine/Object.h"
class CParser
{
// Field:
    std::wstring path_file;
public:
    void LoadFromEcad(CObject & object, const std::wstring & path);
private:
    bool IsFileExist()
    {
        if ( PathFileExistsW( path_file.c_str() ) ) return true;
        return false;
    }
};
Ошибка:
1>------ Build started: Project: ecad, Configuration: Debug Win32 ------
1>Compiling...
1>WinMain.cpp
1>Generating Code...
1>Skipping... (no relevant changes detected)
1>Parser.cpp
1>Linking...
1>Parser.obj : error LNK2019: unresolved external symbol __imp__PathFileExistsW@4 referenced in function "private: bool __thiscall CParser::IsFileExist(void)" (?IsFileExist@CParser@@AAE_NXZ)
1>c:\Users\vbloodv\Documents\Visual Studio 2008\Projects\ecad\bin\\ecad.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:\Users\vbloodv\Documents\Visual Studio 2008\Projects\ecad\intermediate\BuildLog.htm"
1>ecad - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Добавлено через 12 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class CParser
{
// Field:
    std::wstring path_file;
public:
    void LoadFromEcad(CObject & object, const std::wstring & path);
private:
    inline bool IsFileExist()
    {
        if ( PathFileExistsW( path_file.c_str() ) ) return true;
        return false;
    }
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "Parser.h"
void CParser::LoadFromEcad( CObject & object, const std::wstring & file_name )
{
    if (IsFileExist())
    {
        MessageBox(NULL,L"Message about error",L"OK",MB_OK);
    }
    else
    {
        MessageBox(NULL,L"Message about error",L"Abort",MB_OK);
    }
}
Ошибка та-же, я что-то не улавливаю на что именно линкер ругается...
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.07.2013, 12:44 #4
Реализация PathFileExistsW() есть?
0
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
24.07.2013, 12:53  [ТС] #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Реализация PathFileExistsW() есть?
Это WinAPI
P.S. http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.07.2013, 12:57 #6
Цитата Сообщение от vbloodv Посмотреть сообщение
C++
1
2
if ( PathFileExistsW( path_file.c_str() ) ) return true;
return false;
C++
1
return PathFileExistsW(path_file.c_str()) == TRUE;
1
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
24.07.2013, 13:04  [ТС] #7
Цитата Сообщение от Jupiter Посмотреть сообщение
return PathFileExistsW(path_file.c_str()) == TRUE;
Ошибка осталась, но стиль я запомнил. Красиво! Эстетично, Лаконично, Верно...
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.07.2013, 13:29 #8
Скорее всего, реализации нет.
1
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.07.2013, 13:31 #9
Shlwapi прилинкован?
1
Praktolock
65 / 65 / 1
Регистрация: 29.11.2011
Сообщений: 300
24.07.2013, 13:33 #10
а либу подключить не надо?

Добавлено через 33 секунды
Shlwapi.lib подлючена?
1
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.07.2013, 13:38 #11
Цитата Сообщение от Praktolock Посмотреть сообщение
Shlwapi.lib подлючена?
Вот это решает проблему.
1
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
24.07.2013, 15:25  [ТС] #12
Цитата Сообщение от Praktolock Посмотреть сообщение
Shlwapi.lib подлючена?
Забыл, не подключил...
#pragma comment( lib, "shlwapi.lib" ) и все работает, спасибо большое проблема решена !
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2013, 15:25
Привет! Вот еще темы с ответами:

Непонятная ошибка линковки - C++
MyForm.h: #pragma once namespace Проект1 { using namespace System; using namespace System::ComponentModel; using...

Ошибка линковки. Глобальные переменные - C++
Здравствуйте, имеется многофайловый проект. Объявляю глобальные переменные с помощью extern. Линковщик жалуется на 2 ошибки: LNK2020 и...

Ошибка линковки в многофайловом проекте - C++
что за на??? в проекте 3 модуля: main.cpp, test.cpp, test.h, в main.cpp и test.cpp подключен test.h, в test.h одна единственная функция int...

Шаблонный класс, ошибка линковки - C++
Всем добрый день, возникла такая ошибка, когда создаю объект класса в функции мэин то линковщик начинает ругатся, посмотрите пожалуйста...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.07.2013, 15:25
Ответ Создать тему
Опции темы

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