информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 700 с лишним git-серверов пострадало... 
 От повторного пришествия Шаи-Хулуда... 
 Крупный сбой Azure и других сервисов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Как сделать так, чтобы функции не импортировались из DLL, а включались в создаваемый EXE? 24.03.02 07:49  Число просмотров: 1061
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
> Я оптимизирую свою программу, исключая из нее CRT:
> #pragma comment(linker,"/ENTRY:DllMain")
>
> но таким функциям как fopen и т.д. необходима MSVCRT.DLL
> и получается для работы программы она тоже необходима.
fopen и т.д. являются частью CRT
если не хочешь CRT, используй CreateFile, WriteFile, ReadFile
<programming>
[C++] Как сделать так, чтобы функции не импортировались из DLL, а включались в создаваемый EXE? 23.03.02 23:14  
Автор: Vital Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Я оптимизирую свою программу, исключая из нее CRT:
#pragma comment(linker,"/ENTRY:DllMain")

но таким функциям как fopen и т.д. необходима MSVCRT.DLL
и получается для работы программы она тоже необходима.

Как включить код нужных функций в EXE и тем самым освободить
программу от MSVCRT.DLL?

Спасибо,
Vital
[C++] Как сделать так, чтобы функции не импортировались из DLL, а включались в создаваемый EXE? 24.03.02 15:21  
Автор: Biasha <Бяша> Статус: Member
<"чистая" ссылка>
> Я оптимизирую свою программу, исключая из нее CRT:
Что за интересный способ оптимизации?

> но таким функциям как fopen и т.д. необходима MSVCRT.DLL
> и получается для работы программы она тоже необходима.
Исходное утверждение не верно (для fopen MSVCRT.DLL не является необходимой).

> Как включить код нужных функций в EXE и тем самым
> освободить
> программу от MSVCRT.DLL?
Используя статические библиотеки (ключи /ML, /MT компилятора, или закладка C/C++ окна Project Settings, Category: Code Generation). Только зачем?
В результате твоя прога от них распухнет только. Но зато в ней не будет импорта MSVCRT.DLL, библиотеки, которая есть во всех виндах, и которая уже наверняка загружена в память кем-то другим. Ох и оптимизация выходит…
[C++] Как сделать так, чтобы функции не импортировались из DLL, а включались в создаваемый EXE? 24.03.02 07:49  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
> Я оптимизирую свою программу, исключая из нее CRT:
> #pragma comment(linker,"/ENTRY:DllMain")
>
> но таким функциям как fopen и т.д. необходима MSVCRT.DLL
> и получается для работы программы она тоже необходима.
fopen и т.д. являются частью CRT
если не хочешь CRT, используй CreateFile, WriteFile, ReadFile
[C++] Линкуй со статической либой С/С++ 23.03.02 23:33  
Автор: Sidor Статус: Незарегистрированный пользователь
<"чистая" ссылка>
[C++] Линкуй со статической либой С/С++ 24.03.02 00:36  
Автор: Vital Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Я делаю так:
#pragma comment(lib,"LIBC.LIB")

при этом:{

Для fopen, _wfopen из MSDN:

<stdio.h>

Libraries

LIBC.LIB Single thread static library, retail version
LIBCMT.LIB Multithread static library, retail version
MSVCRT.LIB Import library for MSVCRT.DLL, retail version }

Две первые библиотеки вставляют в код CRT, так что их использование
невозможно а c MSVCRT.LIB все по старому.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach