C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 313 - Константа _AFXDLL / MFC шаг за шагом / Visual C++

Шаг 313 - Константа _AFXDLL

Данная константа позволяет Вам определить как компонуется MFC DLL статически или динамически. Давайте установим статическую компоновку.

313_1.gif (1052 b)

И запустим нашу программу:

// atest.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "afxwin.h"
#include "iostream.h"

void main()
{
#if defined _AFXDLL 
cout << "dinamic" << endl;
#else
cout << "static" << endl;
#endif
}

Результат будет таким:

static
Press any key to continue

Переключимся на dinamic:

313_2.gif (1006 b)

И запустим опять:

dinamic
Press any key to continue

Вы спросите есть ли разница для программиста. Есть как ни странно. Вот такой код можно увидеть в DLL:

#ifndef _AFXDLL 
	AFX_MANAGE_STATE(AfxGetStaticModuleState()); 
#endif

При создании DLL просто или расширений MFC необходимо по разному строить программный код. Но и в EXE при инициализации, допустим библиотеки CTL3D32.DLL, она разная в зависимости от того, как используется MFC:

#ifdef _AFXDLL 
	Enable3dControls( ); 
#else 
	Enable3dControlsStatic( );
#endif

| |
Автор Каев Артем.
[AD]