powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Неразрешенные внешние элементы при вызове функции другого файла
17 сообщений из 17, страница 1 из 1
Неразрешенные внешние элементы при вызове функции другого файла
    #39388613
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил создать библиотеку у решения. Поэтому добавил файлы:
Mylib.h:
Код: plaintext
1.
2.
3.
#include "stdafx.h"

int myChooseFolder();



и MyLib.cpp:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#include "stdafx.h"
#include "MyLib.h"

int myChooseFolder()
{
	return 1;
}



Такой код выдает ошибку о неразрешенных внешних элементах (файл MyLib.h добавлен в заголовки с помощью автозаполнения, поэтому 100% виден):
Код: plaintext
1.
2.
3.
4.
5.
#include "..\MyLib.h"
void Project1::OnBnClickedButton1()
{
	int t = myChooseFolder();
}



Почему?
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39388614
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLПочему?
Потому что надо ещё добавить библиотеку в список линковки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39388621
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Взлетело когда я перебросил файлы Mylib.h и MyLib.cpp в папку проекта (из предварительно созданной папки решения, с помощью которой я хотел все красиво разложить по разным местам).

Не понял тогда зачем были придуманы папки решения, если из них не запускаются файлы...
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39388623
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovПотому что надо ещё добавить библиотеку в список линковки.


Это как?
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39388625
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слэш пишется \\
Код: plaintext
1.
#include "..\\MyLib.h"


или можно так
Код: plaintext
1.
#include "../MyLib.h"
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39388629
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TСлэш пишется \\
Код: plaintext
1.
#include "..\\MyLib.h"


или можно так
Код: plaintext
1.
#include "../MyLib.h"



Всеми способами пробовал- не работает.
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39388726
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLВсеми способами пробовал- не работает.
Значит С это не твое, учи ЯП попроще. Си язык очень простой, но очень требовательный, все головняки перекладываются на разработчика, если ты не в состоянии эти головняки порешать, то займись чем-то другим.
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39388754
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T, вопрос оказался в среде разработке и к С отношения не имел.
Спасибо за рекомендацию :)
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39388842
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLDima T, вопрос оказался в среде разработке и к С отношения не имел.
Спасибо за рекомендацию :)

Вопрос имел непосредственное отношение к языку С, и то, что ты не знаешь,
основные принципы его работы, как раз и привело к проблеме.
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39388962
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLDima T, вопрос оказался в среде разработке и к С отношения не имел.
Спасибо за рекомендацию :)
Без обид, я писал не чтобы загнобить.
Судя по твоим постам ты для себя изучаешь, своих целей ты не обозначил, но подозреваю что Си тебе не нужен. Чистый Си это очень много букав в коде и на каждой букве надо быть готовым к выстрелу в ногу. В С нет ограничений, поэтому он самый быстрый и потому же самый трудный.
Есть другие ЯП где все попроще, тот же C#.
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39388977
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Dima T]AlekseySQLDima Есть другие ЯП где все попроще, тот же C#. К сожалению, далеко не все он может. Долгое время работал с VB (начиная с VB6) и С#. И вполне устраивало. А тут незадача - ну не могут они этого.)) Про Алексея не знаю, но я долго и безуспешно пытался прикрутить к своим задачам С#, включая сторонние компиляторы. Оказалось, таки, что проще (и быстрее) на С++. Хотя не особо помню и сильно отстал от поезда.
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39389159
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA К сожалению, далеко не все он может. Долгое время работал с VB (начиная с VB6) и С#. И вполне устраивало. А тут незадача - ну не могут они этого.)) Про Алексея не знаю, но я долго и безуспешно пытался прикрутить к своим задачам С#, включая сторонние компиляторы. Оказалось, таки, что проще (и быстрее) на С++. Хотя не особо помню и сильно отстал от поезда.
Проблематично написать DLL на C# и вызывать ее функции из стороннего приложения (не на .Net), но вроде как можно. Тут С/С++ удобнее. На C WinAPI написан, практически все ЯП умеют WinAPI вызывать, по той же схеме легко свое API подсунуть.

Но писать законченные приложения на C# гораздо проще, букав меньше, т.к. из коробки есть куча классов на все случаи жизни, с хорошей документацией, в этом плане С/С++ сложнее, т.к. в стандарте С/С++ только самое-самое нужное, для остального надо брать сторонние библиотеки и разбираться с ними, или самому с нуля писать.
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39389188
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TПроблематично написать DLL на C# и вызывать ее функции из стороннего приложения (не на .Net), но вроде как можно. Тут С/С++ удобнее. На C WinAPI написан, практически все ЯП умеют WinAPI вызывать, по той же схеме легко свое API подсунуть.
Но писать законченные приложения на C# гораздо проще, букав меньше, т.к. из коробки есть куча классов на все случаи жизни, с хорошей документацией, в этом плане С/С++ сложнее, т.к. в стандарте С/С++ только самое-самое нужное, для остального надо брать сторонние библиотеки и разбираться с ними, или самому с нуля писать.Здесь вы немного не правы. Нативные экспорт функции из С# сделать несложно:
1. Компиляция С# кода, с послующим его декомпилом, затем правка этого декомпила вручную и последующая повторная компиляция.
2. Прямо из VS C# с GitHub скачивается сторонний компилятор. Перед экспортируемой функцией пишем типа [Export], и компилируем прямо из VS этим сторонним компилятором. Он, в общем, делает примерно тоже, что и п.1, только автоматом.
Другое дело внешние сложные С++ типы данных и указатели на них, коллбэк функции и пр. Возможно такое взаимодействие и можно организовать из С#, но проще сделать из С++.
Т.к. С++ предполагает совмещение нативного и NET кодов в одном флаконе, я думаю так и сделать.
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39389198
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAЗдесь вы немного не правы. Нативные экспорт функции из С# сделать несложно:
1. Компиляция С# кода, с послующим его декомпилом, затем правка этого декомпила вручную и последующая повторная компиляция.
2. Прямо из VS C# с GitHub скачивается сторонний компилятор. Перед экспортируемой функцией пишем типа [Export], и компилируем прямо из VS этим сторонним компилятором. Он, в общем, делает примерно тоже, что и п.1, только автоматом.
Другое дело внешние сложные С++ типы данных и указатели на них, коллбэк функции и пр. Возможно такое взаимодействие и можно организовать из С#, но проще сделать из С++.
Т.к. С++ предполагает совмещение нативного и NET кодов в одном флаконе, я думаю так и сделать.
вам, господин yuba, надо сменить не яп а траву, а лучше вобще отказаться от этой привычки :)

по мне - если знаешь хорошо плюсы, то быстрее делать на плюсах. изучать их наверное труднее, но если начать сразу с них, то будешь более хорошим специалистом.
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39395074
Пётр Седов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TСлэш пишется \\
Код: plaintext
1.
#include "..\\MyLib.h"

Здесь необязательно удваивать backslash-и (по крайней мере в MinGW).

Dima TНа C WinAPI написан,Wine-овская реализация WinAPI -- да, написана на C . Виндовая реализация WinAPI -- скорее всего тоже, хотя Microsoft не публикует исходники Windows. Слышал, что первые версии Windows (ещё 16-битные) были написаны на Pascal-е, поэтому у WinAPI-шных функций calling convention назывался «pascal», а уже потом переименовали в «stdcall».

Dima Tв стандарте С/С++ только самое-самое нужное,И ещё кое-что ненужное, например std::prev_permutation , std::next_permutation , std::valarray . А вот получить stack trace в отладочном build-е стандартным способом -- по-прежнему нельзя. Видимо, считается, что программистам достаточно __FILE__, __LINE__, __func__.
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39395080
Common Lisp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пётр СедовDima TСлэш пишется \\
Код: plaintext
1.
#include "..\\MyLib.h"

Здесь необязательно удваивать backslash-и (по крайней мере в MinGW).
6.4.7 Header names paragraph 2If the characters ', \, ", //, or /* occur in the sequence between the < and > delimiters,
the behavior is undefined. Similarly, if the characters ', \, //, or /* occur in the
sequence between the " delimiters, the behavior is undefined. Header name
preprocessing tokens are recognized only within #include preprocessing directives and
in implementation-defined locations within #pragma directives.
...
Рейтинг: 0 / 0
Неразрешенные внешние элементы при вызове функции другого файла
    #39396000
ermak.nn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очевидно, что проблема была в том, что MyLib.cpp не компилировался, либо библиотека была не подключена к проекту.
На начальном этапе не советую использовать самописные библиотеки и заниматься не пойми чем. Также, в VS лучше использовать английский язык, ибо вам же проще будет искать помощь в решении тех или иных трудностей.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Неразрешенные внешние элементы при вызове функции другого файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]