· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Microsoft Visual Studio & VCVARS32.BAT

<< . 1 . 2 . 3 . 4 . 5 . 6 . >>

Посл.отвђт Сообщен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 зря.

<< . 1 . 2 . 3 . 4 . 5 . 6 . >>


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