Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
1

Ошибка линковки

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

Author24 — интернет-сервис помощи студентам
Ругается на:
Кликните здесь для просмотра всего текста
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.07.2013, 11:55
Ответы с готовыми решениями:

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

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

Ошибка линковки
Как исправить эту ошибку линковки? LRESULT CALLBACK WndProc(HWND, UINT , WPARAM, LPARAM); ...

Ошибка линковки
Вот список инклудов: #define _CRT_SECURE_NO_WARNINGS #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt;...

11
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
24.07.2013, 11:59 2
vbloodv, метод инлайн, а тело черти где.
1
23 / 23 / 3
Регистрация: 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
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.07.2013, 12:44 4
Реализация PathFileExistsW() есть?
0
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
24.07.2013, 12:53  [ТС] 5
Цитата Сообщение от alsav22 Посмотреть сообщение
Реализация PathFileExistsW() есть?
Это WinAPI
P.S. http://msdn.microsoft.com/en-u... s.85).aspx
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
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
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
24.07.2013, 13:04  [ТС] 7
Цитата Сообщение от Jupiter Посмотреть сообщение
return PathFileExistsW(path_file.c_str()) == TRUE;
Ошибка осталась, но стиль я запомнил. Красиво! Эстетично, Лаконично, Верно...
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.07.2013, 13:29 8
Скорее всего, реализации нет.
1
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
24.07.2013, 13:31 9
Shlwapi прилинкован?
1
73 / 73 / 18
Регистрация: 29.11.2011
Сообщений: 356
24.07.2013, 13:33 10
а либу подключить не надо?

Добавлено через 33 секунды
Shlwapi.lib подлючена?
1
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.07.2013, 13:38 11
Цитата Сообщение от Praktolock Посмотреть сообщение
Shlwapi.lib подлючена?
Вот это решает проблему.
1
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
24.07.2013, 15:25  [ТС] 12
Цитата Сообщение от Praktolock Посмотреть сообщение
Shlwapi.lib подлючена?
Забыл, не подключил...
#pragma comment( lib, "shlwapi.lib" ) и все работает, спасибо большое проблема решена !
0
24.07.2013, 15:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.07.2013, 15:25
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru