Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2012, 08:00   #1
hvz-
Форумчанин
 
Регистрация: 14.11.2010
Сообщений: 138
Восклицание Ошибка линковки + вопрос

Всем доброго времени суток!
Вобщем пишу програмку одну (в винапи новичёк) и выскакивает ошибка линковки, вот проект.
Даже не знаю что делать, перерыл половину гугла(так же шаманил с проектом) и ничего толкового не нашёл, прошу помощи у более знающих людей.
Так же есть 1 вопрос, какие юзать либы/функции для "захода" на сайт и если там найдёт определённую строку - вывод сообщения/звука ?

П.С. Юзаю Visual Studio 2010

Последний раз редактировалось hvz-; 07.03.2012 в 08:11.
hvz- вне форума Ответить с цитированием
Старый 07.03.2012, 08:44   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

какая ошибка то выскакивает?
Цитата:
Так же есть 1 вопрос, какие юзать либы/функции для "захода" на сайт
либо либы готовые по работе с HTTP, либо сами на сокетах.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.03.2012, 09:43   #3
hvz-
Форумчанин
 
Регистрация: 14.11.2010
Сообщений: 138
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
какая ошибка то выскакивает?
Оооой, совсем забыл))) Вот:
Цитата:
error LNK2005: "void __cdecl ActivateSkillzWindow(struct HWND__ * *)" (?ActivateSkillzWindow@@YAXPAPAUHWN D__@@@Z) already defined in checkerMain.obj C:\Users\Artem\documents\visual studio 2010\Projects\Skillz_Cup_Checker\Sk illz_Cup_Checker\design.obj Skillz_Cup_Checker
error LNK1169: one or more multiply defined symbols found C:\Users\Artem\documents\visual studio 2010\Projects\Skillz_Cup_Checker\Re lease\Skillz_Cup_Checker.exe Skillz_Cup_Checker
hvz- вне форума Ответить с цитированием
Старый 07.03.2012, 19:20   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

у вас дважды включен файл содержащий реализацию функции ActivateSkillzWindow.
а значить проект состоит из нескольких cpp файлов, и вы либо написали реализацию в хидере, или же инклюдите cpp.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.03.2012, 21:15   #5
hvz-
Форумчанин
 
Регистрация: 14.11.2010
Сообщений: 138
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
у вас дважды включен файл содержащий реализацию функции ActivateSkillzWindow.
а значить проект состоит из нескольких cpp файлов, и вы либо написали реализацию в хидере, или же инклюдите cpp.
Ну не знаю что там на счёт реализации, сама реализация содержится в файле design.cpp и он включён в checkerMain.cpp - в файл где находиться главная функция winmain. Проект можно качнуть в начале.
hvz- вне форума Ответить с цитированием
Старый 07.03.2012, 22:31   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

cpp не должна быть тогда часть проекта раз вы хотите инклюдить её, но вообще-то разбейте как положенно на .h(обьявление функции) и .cpp(реализация)
инклюдиться только первая.

вам стоит изучить особенности многомодульных проектов прежде чем их применять.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.03.2012, 23:53   #7
hvz-
Форумчанин
 
Регистрация: 14.11.2010
Сообщений: 138
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
cpp не должна быть тогда часть проекта раз вы хотите инклюдить её, но вообще-то разбейте как положенно на .h(обьявление функции) и .cpp(реализация)
инклюдиться только первая.
Т.е. в includes объявляем прототип функции, в design.cpp описываем реализацию и этот файл инклудим в includes а его соответственно в самый главный - checkerMain.cpp, я правильно понимаю ?
UPD: Вобщем сделал всё как описал выше, ругается на неопределённость функции WndProc, прототип которой объявлен в includes.h
Если закоментить строку с этой ошибкой, то выскакивает прежняя. Даже не знаю что и делать

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
вам стоит изучить особенности многомодульных проектов прежде чем их применять.
Спасибо за информацию, буду изучать.

Последний раз редактировалось hvz-; 08.03.2012 в 00:13.
hvz- вне форума Ответить с цитированием
Старый 08.03.2012, 00:06   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Т.е. в includes объявляем прототип функции, в design.cpp описываем реализацию и этот файл инклудим в includes а его соответственно в самый главный - checkerMain.cpp, я правильно понимаю ?
нет.

func.h
Код:
#include <iostream>
void Test();
func.cpp
Код:
void Test
{
    std::cout<<"Test"<<std::endl;
}
main.cpp
Код:
#include "func.h"

//где то там int main() и вызов нашей функции
вот так оно выглядит, каждый cpp файл компилиться отдельно.
и у вас выходит(при вашем раскладе) что в каждом из cpp есть реализация одной и той же функции.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.03.2012, 10:08   #9
hvz-
Форумчанин
 
Регистрация: 14.11.2010
Сообщений: 138
По умолчанию

Вобщем как то заработало, но теперь ошибка в регистрации класса окна, не понимаю почему не регистрирует, вот исходники.
И ещё вопрос, вы объявили о инклуде iostream библиотеки в .h файле, а в .cpp нет и всё прекрасно работает ? Дело в том, что у меня чуть ли не в каждом исходнике нужно инклудить windows.h - это нормально ? Или есть другое решение ? Например где то прописать и потом инклудить ?
hvz- вне форума Ответить с цитированием
Старый 14.03.2012, 00:00   #10
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

~down
Код:
sklz.lpszClassName = szClassName;
EUGY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка линковки! Hacker19_90 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 19.01.2012 06:43
Свой класс - ошибка линковки LNK2019: ссылка на неразрешенный внешний символ... Egyptorium Общие вопросы C/C++ 7 11.01.2012 17:48
Шаблонный класс, ошибка линковки revaldo666 Общие вопросы C/C++ 1 12.12.2011 15:57
Банальная ошибка линковки prouser Общие вопросы C/C++ 2 24.07.2011 04:22
Ошибка TClientSocket и вопрос qwwwq Работа с сетью в Delphi 2 01.08.2009 13:58