|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июл 3, 2004 07:04:24 В 2003 добавлять надоест :) А вообще, можно, конечно. Хак, но можно. |
|
|
Дата: Июл 3, 2004 12:32:00 volodya да, недоглядел =( выходит main зарезервированное для entrypoint имя? если не извращаться. |
|
|
Дата: Июл 3, 2004 14:50:53 q_q > Какие проблемы у vct под 98? Конкретно vct в 98 я даже не пытался ставить, т.к. у меня дошлёпок к masm'у что от 2003 студии не хочет работать в win98, ругается и виснет при компиляции, поэтому использую дошлёпок от VS 2002. Наверняка vct даже не поставится в 98 через инсталлятор. |
|
|
Дата: Июл 3, 2004 17:21:32 jekyll смотря что под извращением понимать :) просто линкеру в командрной строке указываешь /ENTRY:newentrypoint |
|
|
Дата: Июл 5, 2004 05:50:01 Asterix Я ставил vct под xp, и скопировал на w2k, в w2k чего-то не хватило для инсталляции. Работает нормально. |
|
|
Дата: Июл 7, 2004 13:22:20 q_q > в w2k чего-то не хватило для инсталляции. У меня в 2k(sp2) поставился без проблем, возможно тебе нужно обновить виндовый MSI инсталлер. Так ладно, я тут отключился на несколько дней, но вопросы у меня остались ;-) Меня интересуют ключи /DNDEBUG(для cl.exe), /n(для rc.exe) и /OPT:REF(для link.exe), можешь поподробнее объяснить для чего каждый из этих ключей просто я как-то никогда их не использовал, причём описание первого(/DNDEBUG) я вообще нигде не нашёл. |
|
|
Дата: Июл 7, 2004 13:27:38 Правка А мне /safeseh… |
|
|
Дата: Июл 7, 2004 14:49:47 Asterix /DNDEBUG(для cl.exe) ... не нашёл Afaik в msc в для уведомления о конфигурации генерируемого кода принято использовать два макроса _DEBUG и NDEBUG. Первый - версия для отладки, вторая релиз. В случае с ассемблером + vkdebug первый аналогичен присутствию в программе DBGWIN_DEBUG_ON = 1, второй отсутствию. Если ты не выделяешь код, например, ...
HWND hwnd = CreateWindowEx(...
if (NULL == hwnd)
#ifndef NDEBUG
OutputDebugString(...
#endif
else
{
...или...
HWND hwnd = CreateWindowEx(...
if (NULL == hwnd)
#ifdef _DEBUG
OutputDebugString(...
#endif
else
{
...то этот ключ можно удалить.
/n(для rc.exe) Тебе не понятно "Append null's to all strings in the string tables"? /OPT:REF(для link.exe) Тебе не понятно "Use /OPT:REF to eliminate functions and/or data that is never referenced."? IceStudent Я ни разу не использовал seh, поэтому не в курсе. |
|
|
Дата: Июл 7, 2004 20:15:22 q_q > Тебе не понятно "Append null's to all strings in the string tables" А зачем это нужно, меня конкретно это интересует? |
|
|
Дата: Июл 8, 2004 06:26:27 Asterix В Си в качестве признака конца строки используется нуль-символ. Если для загрузки строк из ресурсов использовать LoadString, то вполне логично, что строчка будет содержать нуль-символ, а он будет добавлен, если был использован ключ /n, конечно можно добавлять нуль-символ в строчку прямо в rc-файле либо можно в коде вручную вставлять нуль-символ после прочитанной строки. Попробуй следующий код с ключом и без. #define IDS_HELLO 1
#define IDS_GOODBYE 2
#include <windows.h>
#ifndef RC_INVOKED
#include <stdio.h>
#pragma comment(lib, "user32.lib")
static int resource_string_info(int id, char *name)
{
int i;
char buff[128];
HINSTANCE inst = GetModuleHandle(NULL);
int size = LoadString(inst, id, buff, sizeof(buff));
printf("resource \'%s\' (id:%d) size = %d\ncontents \'", name, id, size);
for (i = 0; i < size; i++)
if ('\0' == buff[i])
printf("<null>");
else
printf("%c", buff[i]);
printf("\'\n");
return 0;
}
int main(void)
{
resource_string_info(IDS_HELLO, "IDS_HELLO");
resource_string_info(IDS_GOODBYE, "IDS_GOODBYE");
return 0;
}
#else
STRINGTABLE
{
IDS_HELLO, "Hello"
IDS_GOODBYE, "Goodbye"
}
#endif |
|
|
Дата: Июл 8, 2004 06:49:25 q_q Чего-то у меня не компилится.. test.c C:\PROGRA~1\MICROS~5\VC98\INCLUDE\rpcasync.h(45) : warning C4115: '_RPC_ASYNC_ST ATE' : named type definition in parentheses LIBC.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 test.exe : fatal error LNK1120: 1 unresolved externals Но всё-равно я теперь понял зачем это нужно, спасибо за разъяснения. |
|
|
Дата: Июл 8, 2004 07:14:48 Asterix не компилится ... VC98 Я проверял на vct и vce с psdk-feb-2003. warning C4115: попробуй #pragma warning(disable : 4115) #include <windows.h> #pragma warning(default : 4115) unresolved external symbol _WinMain@16 Потому что проект у тебя windows, а надо console. Добавь #pragma comment(linker, "/subsystem:console") |
|
|
Дата: Июл 8, 2004 15:48:01 · Поправил: Asterix q_q Про то что это консольное приложение упустил из виду :-) А warnings меня не смущают, я убрал ключ /WX |
|
|
Дата: Июл 8, 2004 20:06:15 · Поправил: Asterix |
|
|
Дата: Июл 9, 2004 03:44:10 Asterix убрал ключ /WX imho зря. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.128 |