densaface ну вот берите современную версию C++ коннектора и пользуйтесь ей, зачем вам этот проект с codeproject с контролами, если вам пару запросов выполнить. Вы быстрее разберетесь сами с интерфейсом коннектора и напишите сами эту пару запросов, чем будете компилить этот не такой уж свежий код. Как вы вообще его нашли?
densaface что значит "удаленно" и "голосовалку сделать"? Вам нужно конкретные запросы к базе выполнить или интерфейс написать? Вам нужно усовершенствовать существующее приложение или написать новое? MFC обязателен или нет?
Алексей С. да уж, статья не очень свежая. Во-первых вся файловая структура C++ Коннектора уже поменялась на это время, во-вторых интерфейс, наверняка, тоже, и очень маловероятно что код из этой статьи молча скомпилится. Оно вам зачем вообще, какова конечная цель?
Gring76www.ptsecurity.ru/files/XSpider_7.8.pdf - ну не знаю, 9 тыщ за 4 хоста на год, не так много имхо, сравнимо со стоимостью, например, хостинга. Ну раз бесплатно, то ставим/нарезаем на болванку Кали и анализируем руками и головой)
bash77 вы вопрос или теги прочли? Там ясно спрашивается про веб-разработку. А если про веб-разработку, то давайте говорить про Java EE. У дотнета тоже есть Micro Framework, только каким он боком в этом разговоре. И я думаю банки и страховые все-таки предпочитают Джаву, а не ПХП для ключевых сервисов.
Про винду вообще не понял. Под виндой нету серверов и веб-приложений?
romy4 да, может и припасть на переключение. Под "наверняка" я имел в виду, что наверняка в этом причина, раз уж автор вопроса уже столкнулся с тем, что значение переменной не меняется.
Поправил ответ, спасибо.
Даниил Демидко
> а инклуд определения класса делать там, где без него уже никак - например там, где вызываются методы класса или создаются его экземпляры.
Чтобы создать экземпляр, компилятору нужно иметь определение класса. Чтобы вызвать метод экзмепляра, также нужно иметь определение класса (иначе компилятор не сможет понять, а есть ли вообще такой метод, и действительно ли у него такие формальные параметры).
Поймите, по сути разбиение на h/cpp это такой хак, необходимый из-за отсутствия (пока что) модульности в C++. Из-за того, что компилятор не умеет собирать информацию по нескольким файлам исходников (как в других языках), при компиляции конкретного cpp компилятору нужна ВСЯ необходимая информация для обработки исходного кода в этом cpp. Наличие этой информации достигается использованием инклудов - вы как бы просите препроцессор собрать для компилятора всю нужную информацию в один файл (который кстати будет намного толще в случае большой иерархии хедеров). Это и определения классов, и typedef-ы, и реализации ШАБЛОННЫХ методов и функций и т.д. После этого компилятор прочтет все нужные определения и сможет ими воспользоваться в нужных местах при обработке кода, находящегося в исходном cpp.
Однако, т.к. конечный бинарник будет линковаться линкером, то при компиляции отдельной "единицы компиляции" (т.е. нашего cpp) нет необходимости иметь определения обыкновенных (нешаблонных) функций и методов - ссылки на них будет ставить уже линковщик. Поэтому правило простое - все МАКСИМАЛЬНО выносится в "единицу компиляции", а та информация, без которой невозможно собирать остальной зависимый код - в хедер. Поэтому, например, реализации методов класса - в cpp, а определение самого класса - в хедере.
Из-за этого кстати появляются различные проблемы, например недостаточная абстракция реализации класса от интерфейса - т.к. экземпляры класса создаются не опосредованно через фабрики, а непосредственно по их определению в месте использования new, то при изменении определения класса (например, добавлении поля или изменении его типа) требуется перекомпиляция всего зависимого кода, т.к. может измениться размер объекта, и вообще нарушиться бинарная совместимость (т.е. DLL-ку/SO-шку уже просто так не поменяешь). Для решения этой проблемы используется, например, упомянутый Vitaly pImpl (там, где бинарную совместимость очень уж хочется). Есть и другие способы, например создание вынесение публичного интерфейса и создание пар функций-фабрик (create/destroy), чтобы переместить код создания/удаления внутрь нужного бинарника.
> Пробовал всякие разные комбинации команд iptables из мануалов с просторов интернета, но результат одинаковый - интернета на клиенте нет.
Какие конкретно? NAT в тех комбинациях был?