· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ZEN —› Вопрос по Visual C++

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Июн 15, 2003 23:52:54

А ты не мучайся с прописыванием скриптов, а юзай АПИшные ф-ции CreateMenu и все что с ней связано


Дата: Июн 16, 2003 00:36:00

Именно об этом я и спрашивал, не получается правильно использовать CreateMenu() и иже с ней. Мне-бы работающий кусок кода посмотреть.


Дата: Июн 16, 2003 04:27:03

640kb
работающий кусок кода посмотреть
Качайте Ч. Петзолд - Программирование для Windows 95 в двух томах (8'113'188 байт) и будет Вам не только CreateMenu, которое в 10-ой главе.


Дата: Июн 17, 2003 01:41:04

Спасибо!


Дата: Июн 26, 2003 05:30:08 · Поправил: P2M

640kb
Можно ли содержимое .rc прописать в .cpp-исходнике, и если можно то как.
Оказывается можно (магическое слово RC_INVOKED). Пример:

[code]
// test.c
#include <windows.h>
#define IDD_MAIN 100

#ifndef RC_INVOKED

#include <tchar.h>

static BOOL CALLBACK DialogFunc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
if (WM_INITDIALOG == msg)
return TRUE;
if (WM_CLOSE == msg || (WM_COMMAND == msg && IDOK == LOWORD(wParam)))
{
EndDialog(hwndDlg, 0);
return TRUE;
}
return FALSE;
}

int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hPervInst, PTSTR pszCmdLine, int nshowCmd)
{
return DialogBox(hInst, MAKEINTRESOURCE(IDD_MAIN), NULL, (DLGPROC) DialogFunc);
}

#else

IDD_MAIN DIALOG 7, 20, 195, 86
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Test"
FONT 8, "Helv"
{
DEFPUSHBUTTON "OK", IDOK, 149, 6, 40, 14
}

#endif
[/code]

Bat-файл для сборки:
[code]
@echo off
if exist test.res del test.res > nul
if exist test.obj del test.obj > nul
if exist test.exe del test.exe > nul
call "C:\Program Files\Microsoft Visual Studio\VC98\bin\vcvars32.bat"
copy test.c test.rc
rc.exe /r /d_RC32 /fotest.res test.rc
del test.rc > nul
cl.exe /c test.c
link.exe /SUBSYSTEM:WINDOWS test test.res user32.lib
if exist test.res del test.res > nul
if exist test.obj del test.obj > nul
[/code]

PS Более того есть возможность поместить в исходный текст С/С++ команды для nmake. И тогда останется только nmake -ftest.c


Дата: Июн 26, 2003 07:29:29

P2M
copy test.c test.rc
Так нечестно ;-)


Дата: Июн 26, 2003 07:37:04

Quantum
Afaik VS6sp3 по другому никак.
Я был бы рад "rc.exe /fotest.res test.c".
Imho глупо/перегиб требовать, чтобы расширение было RC.


Дата: Июн 26, 2003 08:23:24

P2M
Эврика! Поменяйте расширение на cpp (test.cpp) и новый BAT-файл сократится на две строчки:
[code]
@echo off
if exist test.res del test.res > nul
if exist test.obj del test.obj > nul
if exist test.exe del test.exe > nul
call "vcvars32.bat"
rc.exe /r /d_RC32 /fotest.res test.cpp
cl.exe /c test.cpp
link.exe /SUBSYSTEM:WINDOWS test test.res user32.lib
if exist test.res del test.res > nul
if exist test.obj del test.obj > nul
[/code]


Дата: Июн 26, 2003 09:40:47

Quantum
Поменяйте расширение на cpp
Я предпочитаю Си.
А вот с LCC'шный компилятор ресурсов без проблем переваривает test.c.

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.343