Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Аналог internal в C++


Автор: JoKe 25.7.2013, 20:07
Есть dll на C#:
Код

public class Sdk {
    private int X;
    
    public Sdk() {}

    internal Sdk(int x) {
        X = x;
    }
}

Внутри самой dll я могу создавать объект Sdk через второй конструктор, а вот извне dll его использовать нельзя, т.к. он скрыт от пользователя.
Необходимо реализовать тоже самое, но на C++. Все перерыл, мозг себе взорвал, но так ничего и не придумал. Это возможно сделать? Если да, то как?

Автор: Dem_max 26.7.2013, 15:24
http://www.gamedev.ru/code/faq/?id=3572

Автор: JoKe 26.7.2013, 21:50
Цитата(Dem_max @ 26.7.2013,  15:24)
http://www.gamedev.ru/code/faq/?id=3572

Премного благодарен. В дополнение, хочу отметить одну важную деталь.
Допустим у нас такой макрос:
Код

#ifdef building_sdk
#define inside __declspec(dllexport)
#else
#define inside __declspec(dllimport)
#endif

Тогда dll должна компилироваться с параметром -Dbuilding_sdk.
Проверено в MinGW 4.8 32bit (Qt 5.1.0).

Автор: bsa 31.7.2013, 09:45
JoKe, не делай макросы в нижнем регистре. Рекомендую использовать DLL_PUBLIC (это универсально и для внутреннего использования и для внешнего) - его никто никогда не спутает с переменной, функцией или еще чем-то.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)