3.) Хотел экспортировать переменные CString. Ноль эмоций от VC. Много думал - экспортнул CAtlString. Может есть более красивое решение? 
в общем, как оно и положено dll экспортируют классы. Классы моей бизнс-логики. В классах часто приходиться работать со строками. Само собой - уж коли я хочу работать с MFC то и строки мне нравяться CString. При работе с ними - ошибки типа fatal error.
 Если заменить весь CString на CAtlString - компилиться без проблем.
 То есть проблему то я конечно обошел, но может я что не так делал?
 Короче кусок кода из global.dll:
 global.h
#pragma once
#pragma warning(disable: 4251)
#include <string>
#include <list>
#include <map>
#include <vector>
#include <atlstr.h>
#define EXPORTMODEGLOBAL __declspec(dllexport)
#define EXPORTMODEOBJ __declspec(dllexport)
typedef EXPORTMODEGLOBAL CAtlStringW IEString;
class EXPORTMODEGLOBAL IEObject
{
 protected:
  int Type; //тип объекта 
  DWORD IDC; //идентификационный номер, нужен при сборке в файл
 public:
  IEObject* Parent; //указатель на контейнер, где он живет
  //конструторы, деструкторы
  IEObject(void);
  IEObject(const IEObject& Obj);
  IEObject operator=(const IEObject& Object);
  virtual ~IEObject(void);
  //методы
  void GetType(int& Type) const;
  //достать родительскую систему
  static IEObject* GetParentSystem(IEObject* Parent);
  //достать самую высокую систему
  static IEObject* GetSystemHigh(IEObject* Parent);
  //достать критерий, если система с оъектом - характеризующая
  static IEObject* GetCritHigh(IEObject* Parent);
  //установить идентификац. номер
  void SetIDC(const DWORD& i);
  //достать идентификац. номер
  DWORD GetIDC(void) const;
};
//абстрактный класс поименнованного объекта
//имеет коментарий и свойство выбранности
class EXPORTMODEGLOBAL IEName: public IEObject
{
 protected:
  IEString Name; //имя
  IEString Coment; //комментарий
  bool Select; //свойство выбранности
 public:
  //конструкторы, деструторы
  IEName(void);
  IEName(const IEName& Name);
  IEName operator=(const IEName& Name);
  virtual ~IEName(void);
  //методы
  void SetName(const IEString& Name);
  void GetName(IEString& Name) const;
  void SetComment(const IEString& Comment);
  void GetComment(IEString& Comment) const;
  void SetSelect(const bool& Select);
  bool CheckSelect(void) const;
};
 Тот самый IEString - на нем вся прога пашет.