Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Множественное объявление и файл Ресурсов 
:(
    Опции темы
devmstr
Дата 26.12.2006, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 28.4.2004
Где: Ukraine

Репутация: нет
Всего: 11



Опять столкнулся с множественным объявлением hiders.
Меняю содержание темы, в связи с новыми данными, ресурсы не причем...
Что я не так делаю?
Вот мой код
main.h

Код
#ifndef __MAIN__H__
#define __MAIN__H__

#include "nsRCritChMng.h"

INT_PTR WINAPI MnDlgProc(HWND hDlg, UINT msg, WPARAM wPar, LPARAM lPar);

//
// Initialization of Dialog
void DialogInitialization(HWND hDlg);
#endif


main.cpp
Код
#include <windows.h>
#include <commctrl.h>
#include "resource.h"
#include "main.h"

#pragma comment (lib, "comctl32.lib")

INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, INT nCmdShow)
{
    INITCOMMONCONTROLSEX icce;
    InitCommonControlsEx(&icc);
    DialogBox(hInst, MAKEINTRESOURCE(IDD_MAIN), NULL, MnDlgProc);
    return 0;
}

INT_PTR WINAPI MnDlgProc(HWND hDlg, UINT msg, WPARAM wPar, LPARAM lPar)
{
    switch (msg)
    {
    case WM_INITDIALOG:
        DialogInitialization(hDlg);
        break;
    case WM_CLOSE:
        EndDialog(hDlg, IDOK);
        return TRUE;
    }
    return FALSE;
}


void DialogInitialization(HWND hDlg)
{
    // Visual components initialization
    nsRCritChMng::InitRB(hDlg);
}


nsRCritChMng.h
Код
#ifndef __NSRCRITCHMNG__H__
#define __NSRCRITCHMNG__H__
#include <windows.h>
#include "resource.h"
#include "commctrl.h"

namespace nsRCritChMng
{
        WNDPROC pOldEditProc;
        void InitRB(HWND hDlg);
        INT_PTR WINAPI EdtDlgProc(HWND hEdt, UINT msg, WPARAM wPar, LPARAM lPar);
        
};
#endif


nsRCritChMng.cpp
Код
#include "nsRCritChMng.h"

//
// Initialization of RadioButtons
void nsRCritChMng::InitRB(HWND hDlg)
{
    SendMessage(GetDlgItem(hDlg, IDC_UD_OPTIND), UDM_SETRANGE32, (WPARAM)0, (LPARAM)9);
    SendMessage(GetDlgItem(hDlg, IDC_UD_OPTIND), UDM_SETPOS32, 0, (LPARAM)5);
    
    SetDlgItemText(hDlg, IDC_E_OPTIMIND, __TEXT("0.5"));
    pOldEditProc =  (WNDPROC)(LONG_PTR)SetWindowLongPtr(GetDlgItem(hDlg, IDC_E_OPTIMIND), DWLP_DLGPROC, (LONG)(LONG_PTR)EdtDlgProc);
}

INT_PTR WINAPI nsRCritChMng::EdtDlgProc(HWND hEdt, UINT msg, WPARAM wPar, LPARAM lPar)
{
    return CallWindowProc(pOldEditProc, hEdt, msg, wPar, lPar);
}


Помоги пожайлуста, объясните что не так... 

Сообщение компилера:
Код
error LNK2005: "long (__stdcall* nsRCritChMng::pOldEditProc)(struct HWND__ *,unsigned int,unsigned int,long)" (?pOldEditProc@nsRCritChMng@@3P6GJPAUHWND__@@IIJ@ZA) already defined in main.obj    nsRCritChMng.obj    

fatal error LNK1169: one or more multiply defined symbols found


Это сообщение отредактировал(а) devmstr - 27.12.2006, 01:38


--------------------
Think different ©Steve Jobs 
user posted image
PM MAIL WWW   Вверх
Aleksandor
Дата 27.12.2006, 07:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Практик
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 22.11.2005
Где: россия, зеленогра д

Репутация: 10
Всего: 12



#include "nsRCritChMng.h"
 в main.h
 и в nsRCritChMng.cpp 

 
 Мона попробовать так
Код

#pragma once
#include "nsRCritChMng.h"



--------------------
Call out Gouranga be happy!!!
Gouranga Gouranga Gouranga ....
That which brings the highest happiness!!
PM MAIL   Вверх
devmstr
Дата 27.12.2006, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 28.4.2004
Где: Ukraine

Репутация: нет
Всего: 11



Aleksandor, 
К сожалению не помогло. Защита от этого и так стоит.

Мне тут подсказали:
Код

static WNDPROC pOldEditProc=NULL;


Помогло. Но только непонятно, почему это помогает...


--------------------
Think different ©Steve Jobs 
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0447 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.