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

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

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

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

24.07.2013, 11:55. Просмотров 784. Ответов 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();
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2013, 11:55     Ошибка линковки
Посмотрите здесь:

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

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

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

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

Ошибка линковки - 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++
MyForm.h: #pragma once namespace Проект1 { using namespace System; using namespace System::ComponentModel; using...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
24.07.2013, 11:59     Ошибка линковки #2
vbloodv, метод инлайн, а тело черти где.
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);
    }
}
Ошибка та-же, я что-то не улавливаю на что именно линкер ругается...
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.07.2013, 12:44     Ошибка линковки #4
Реализация PathFileExistsW() есть?
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
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 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;
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
24.07.2013, 13:04  [ТС]     Ошибка линковки #7
Цитата Сообщение от Jupiter Посмотреть сообщение
return PathFileExistsW(path_file.c_str()) == TRUE;
Ошибка осталась, но стиль я запомнил. Красиво! Эстетично, Лаконично, Верно...
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.07.2013, 13:29     Ошибка линковки #8
Скорее всего, реализации нет.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.07.2013, 13:31     Ошибка линковки #9
Shlwapi прилинкован?
Praktolock
65 / 65 / 1
Регистрация: 29.11.2011
Сообщений: 300
24.07.2013, 13:33     Ошибка линковки #10
а либу подключить не надо?

Добавлено через 33 секунды
Shlwapi.lib подлючена?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.07.2013, 13:38     Ошибка линковки #11
Цитата Сообщение от Praktolock Посмотреть сообщение
Shlwapi.lib подлючена?
Вот это решает проблему.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2013, 15:25     Ошибка линковки
Еще ссылки по теме:

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

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

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

AVL - дерево, ошибка линковки <LNK2001> - C++
Здравствуйте форумчане! У меня возникли некоторые трудности с линковщиком, помогите разобраться с ним, если не сложно:wall: Пытаюсь...

Ошибка линковки LNK2001. Неразрешенный внешний символ - C++
Здравствуйте, пытаюсь сделать статический метод, в котором используется статическая переменная. Вроде бы все сделал как по книге, но при...


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

Или воспользуйтесь поиском по форуму:
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
24.07.2013, 15:25  [ТС]     Ошибка линковки #12
Цитата Сообщение от Praktolock Посмотреть сообщение
Shlwapi.lib подлючена?
Забыл, не подключил...
#pragma comment( lib, "shlwapi.lib" ) и все работает, спасибо большое проблема решена !
Yandex
Объявления
24.07.2013, 15:25     Ошибка линковки
Ответ Создать тему
Опции темы

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