Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: с++ syntax error  (Прочитано 38662 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Tomson
Участник

ru
Offline Offline

« : 05-04-2008 12:20 » 

Или я правильно ошибаюсь?

ASSERT((IDM_ABOUTBOX &amt; 0xFFF0) == IDM_ABOUTBOX);

syntax error : ')'

if(filename.Left(2).CompareNoCase("a:")!=0 &amt;&amt; filename.Left(2).CompareNoCase("b:")!=0)

syntax error : missing ')' before ';'
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 05-04-2008 13:26 » 

"& a m t ;" - это какой то символ заменился при вставке в пост
Записан

Tomson
Участник

ru
Offline Offline

« Ответ #2 : 05-04-2008 13:37 » 

amp?)
Записан
marat_
Шеф-повар
Опытный

ru
Offline Offline

« Ответ #3 : 05-04-2008 13:39 » 

--
Записан
marat_
Шеф-повар
Опытный

ru
Offline Offline

« Ответ #4 : 05-04-2008 13:41 » 

а где предыдущий ответ?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 05-04-2008 14:48 » 

marat_, я ничего не удалял...

Tomson, там же написано syntax error : missing ')' before ';' , без кода не понятно, где то синтаксическая ошибка
Записан

Tomson
Участник

ru
Offline Offline

« Ответ #6 : 05-04-2008 15:44 » 

ну просто синтакс ероры на эти строчки, вообще вроде есть еше amp, поэтому модумалось про него...
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #7 : 05-04-2008 15:48 » 

Tomson, а что за amp , amt ? )))
может проще так:
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

if(filename.Left(2).CompareNoCase("a:")!=0 && filename.Left(2).CompareNoCase("b:")!=0)

Записан

Tomson
Участник

ru
Offline Offline

« Ответ #8 : 05-04-2008 23:27 » 

хм, да, для этого случая помогло, но там такое не один раз
Записан
Tomson
Участник

ru
Offline Offline

« Ответ #9 : 06-04-2008 09:55 » 

тут тоже
virtual BOOL SelChanged(LPCSTR lpcsSelection, CString&amt; csStatusText;)
 syntax error : missing ')' before ';'
что бы это могло быть?
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 06-04-2008 10:03 » 

Tomson, а почему ";" перед скобкой стоит? =)
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 06-04-2008 10:18 » 

Вад, а он, видимо, копипастит из HTML-кода...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #12 : 06-04-2008 10:40 » 

Tomson,

virtual BOOL SelChanged(LPCSTR lpcsSelection, CString& csStatusText);

а ты откуда копируешь то, на самом деле ?
Записан

Tomson
Участник

ru
Offline Offline

« Ответ #13 : 06-04-2008 10:50 » 

да, каюсь за невнимательность, все победил, осталось несколько варненгов и еще кое-что

exe1.cpp(54) : warning C4996: 'CWinApp::Enable3dControls' was declared deprecated
        c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(4471) : see declaration of 'CWinApp::Enable3dControls'
        Message: 'CWinApp::Enable3dControls is no longer needed. You should remove this call.'
exe1.cpp(61) : warning C4244: 'initializing' : conversion from 'INT_PTR' to 'int', possible loss of data
exe1Dlg.cpp
exe1dlg.cpp(140) : warning C4390: ';' : empty controlled statement found; is this the intent?

AFX_DEPRECATED("CWinApp::Enable3dControls is no longer needed. You should remove this call.")
         BOOL Enable3dControls()

К стати, если сискол выключить, то обламывается на варненгах Здесь была моя ладья...
« Последнее редактирование: 06-04-2008 10:57 от Tomson » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #14 : 06-04-2008 11:01 » 

1) Message: 'CWinApp::Enable3dControls is no longer needed. You should remove this call.'
 - компилятор рекомендует удалить вызов этой функции

2)conversion from 'INT_PTR' to 'int', possible loss of data
 - покажи строчку, где это предупреждение

3) warning C4390: ';' : empty controlled statement found; is this the intent?
- тоже покажи строчку, скорее всего логически не правильно поставил точку с запятой , типа

if(...);
{
}

Записан

Tomson
Участник

ru
Offline Offline

« Ответ #15 : 06-04-2008 11:18 » 

CExe1Dlg dlg;
m_pMainWnd = & dlg;
int nResponse = dlg.DoModal(); <-  warning C4244: 'initializing' : conversion from 'INT_PTR' to 'int', possible loss of data
if (nResponse == IDOK)
{
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #16 : 06-04-2008 11:22 » 

Tomson, покажи, как перегрузил виртуальную DoModal() в классе CExe1Dlg

и  от чего производен CExe1Dlg тоже покажи
Записан

Tomson
Участник

ru
Offline Offline

« Ответ #17 : 06-04-2008 11:41 » 

да вроде не перезагружал
Код:
class CExe1Dlg : public CDialog
{
public:
CExe1Dlg(CWnd* pParent = NULL);
enum { IDD = IDD_EXE1_DIALOG };
CEdit m_edit2;
CEdit m_edit1;
CButton m_button1;
CButton m_button3;
CButton m_buttonok;
CStatic m_ico;
CString m_FileName;
CString m_FileName1;
CString m_path2;

public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX);
А вот тут перезагружал....
Код:
class CDirDialog
{
public:

CDirDialog();
virtual ~CDirDialog();

BOOL DoModal(CWnd *pwndParent = NULL);
...etc...
private:
virtual BOOL SelChanged(LPCSTR lpcsSelection, CString& csStatusText)
{
return TRUE;
};
static int __stdcall CDirDialog::BrowseCtrlCallback(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData);
};
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #18 : 06-04-2008 11:48 » 

Tomson, не "перезагружал" , а "перегружал" Ага

ну класс CDirDialog вообще даже и не произведён от CDialog , поэтому он вообще лесом, а кроме того ты в примере выше его и не показывал. Перепутал ?


ну а почему рагается на

CExe1Dlg dlg;
int nResponse = dlg.DoModal();

не пойму что то.... Где то ты что то не показал нам, мне кажется


typedef long INT_PTR, *PINT_PTR;

а DoModal вертает int , так что колись, где что делал ))
Записан

Tomson
Участник

ru
Offline Offline

« Ответ #19 : 06-04-2008 12:09 » 

->> а DoModal вертает int , так что колись, где что делал ))

void CExe1Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)//; <-- убрал тчк. с запятой
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
->а кроме того ты в примере выше его и не показывал. Перепутал ?
ээ, кого не показывал?
« Последнее редактирование: 06-04-2008 12:12 от Tomson » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #20 : 06-04-2008 12:13 » 

всё логично было, тогда уж так сделай
Код:
void CExe1Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{
  if (nID == IDM_ABOUTBOX)
  {
    CAboutDlg dlgAbout;
    dlgAbout.DoModal();
    return;
  }

  CDialog::OnSysCommand(nID, lParam);
}


что перепутал - не знаю, почему компилятор ругаецо на типы у тебя ?
« Последнее редактирование: 06-04-2008 12:16 от Алексей1153++ » Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #21 : 06-04-2008 12:18 » 

блин, кстати, а чего это ты сравниваешь с IDM_ABOUTBOX ? Зачем ?

Цитата: MSDN
The framework calls this member function when the user selects a command from the Control menu, or when the user selects the Maximize or the Minimize button.

afx_msg void OnSysCommand(
   UINT nID,
   LPARAM lParam
);
Parameters
nID
Specifies the type of system command requested. This parameter can be any one of the following values:
SC_CLOSE   Close the CWnd object.
SC_HOTKEY   Activate the CWnd object associated with the application-specified hot key. The low-order word of lParam identifies the HWND of the window to activate.
SC_HSCROLL   Scroll horizontally.
SC_KEYMENU   Retrieve a menu through a keystroke.
SC_MAXIMIZE (or SC_ZOOM)   Maximize the CWnd object.
SC_MINIMIZE (or SC_ICON)   Minimize the CWnd object.
SC_MOUSEMENU   Retrieve a menu through a mouse click.
SC_MOVE   Move the CWnd object.
SC_NEXTWINDOW   Move to the next window.
SC_PREVWINDOW   Move to the previous window.
SC_RESTORE   Restore window to normal position and size.
SC_SCREENSAVE   Executes the screen-saver application specified in the [boot] section of the SYSTEM.INI file.
SC_SIZE   Size the CWnd object.
SC_TASKLIST   Execute or activate the Windows Task Manager application.
SC_VSCROLL   Scroll vertically.
lParam
If a Control-menu command is chosen with the mouse, lParam contains the cursor coordinates. The low-order word contains the x coordinate, and the high-order word contains the y coordinate. Otherwise this parameter is not used.
SC_HOTKEY   Activate the window associated with the application-specified hot key. The low-order word of lParam identifies the window to activate.
SC_SCREENSAVE   Execute the screen-save application specified in the Desktop section of Control Panel.

Записан

Tomson
Участник

ru
Offline Offline

« Ответ #22 : 06-04-2008 12:34 » 

всякие события окна..
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
....
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
........
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #23 : 06-04-2008 12:36 » 

и работает ?

по моему тебе надо
Цитата: MSDN
virtual BOOL OnCommand(
   WPARAM wParam,
   LPARAM lParam
);
Parameters
wParam
The low-order word of wParam identifies the command ID of the menu item, control, or accelerator. The high-order word of wParam specifies the notification message if the message is from a control. If the message is from an accelerator, the high-order word is 1. If the message is from a menu, the high-order word is 0.
lParam
Identifies the control that sends the message if the message is from a control. Otherwise, lParam is 0.
Return Value
An application returns nonzero if it processes this message; otherwise 0.

Записан

Tomson
Участник

ru
Offline Offline

« Ответ #24 : 06-04-2008 12:49 » 

Ну должно работать, по сути похоже они одно и тоже делают.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #25 : 06-04-2008 12:57 » 

Tomson, ну а ты пробовал ? Улыбаюсь
Записан

Tomson
Участник

ru
Offline Offline

« Ответ #26 : 06-04-2008 13:11 » 

Пока нет, да наверно перекраивать придется немало, пробую разрулить то что есть:)
Записан
Tomson
Участник

ru
Offline Offline

« Ответ #27 : 06-04-2008 13:28 » 

кароче это победил, дело было в ресурсах...
Только теперь проблемс плавно перешел на сами ресурсы...
 error RC2104 : undefined keyword or key name: \u0410\u0446\u0428\u0408\u042b\u0459\u0433\u0430
и дело не в кирилице
LTEXT "rrrr",IDC_STATIC,26,160,105,8
undefined keyword or key name: rrrr
« Последнее редактирование: 06-04-2008 13:42 от Tomson » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #28 : 06-04-2008 13:55 » 

проект покажи ) Я так не смогу разобраться. Это повально....
Записан

Tomson
Участник

ru
Offline Offline

« Ответ #29 : 06-04-2008 15:34 » 

отправил в мыл, к стати)
Записан
Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines