Любые вопросы от ПРОФИ к СУПЕРПРОФИ - 1. - страница 2

 
Zhunko:

Проект был скопирован в VC++ 6.0 со своими свойствами или отдельно настраивался?

был только один рабочий файл cpp, с набором функций. поэтому я заново создал проект в 6.0 и просто перенес все функции в него.

У меня уже раза три было, что использовал в VS 2010 функции, которых нет в ХР. На Висте и 7 работало всё, а под ХР терминал не видел библиотеку.

в этом получается и проблема, что последние VS какие то неправильные dll делают. На одних работают, а на других нет.
 
sergeev:

был только один рабочий файл cpp, с набором функций. поэтому я заново создал проект в 6.0 и просто перенес все функции в него.

в этом получается и проблема, что последние VS какие то неправильные dll делают. На одних работают, а на других нет.

Если со всеми свойствами скопировать, то компилятор на ошибку показал бы, что нет таких функций.

В стандартных инклюдах появились новые строки с директивами препроцессора #IFDEF | #IFNDEF ... #ENDIF. Теперь разделяют на Висту и до неё. Много новых интересных функций появилось, которые не работают на ХР. Вернее, их там нет.

 
granit77:
Если ПРОФИ не будут возражать, модераторы могут в меру сил помогать поддерживать стерильность ветки.

Об этом спрашивать, пусть даже и профи, не стоит. Они (профи) согласны! ))

И еще присмотрите, пожалуйста, за веткой "Где грань..." Тема интересная, и за двадцать постов, практически ни одного фуфлыжного.

Но драчка уже намечается....

 
sergeev:
в этом получается и проблема, что последние VS какие то неправильные dll делают. На одних работают, а на других нет.
Может, проблема в дефолтных настройках? Думается, что если апгрейднуть рабочий проект с 6.0 до 2008, тоже соберется нормально, хотя могу ошибаться.
 
TheXpert:
Может, проблема в дефолтных настройках? Думается, что если апгрейднуть рабочий проект с 6.0 до 2008, тоже соберется нормально, хотя могу ошибаться.

На 6.0 у меня ничего не было, но с 2008 до 2010 все проекты работали. Думаю, всё же, проблема в использовании функций WinAPI, которых нет в старших версиях системы.

При установке студии по умолчанию минимальная версия системы - текущая. По крайней мере, у меня так было на 2008 и 2010. Надо изменить её до ХР.

 
TheXpert:
Может, проблема в дефолтных настройках? Думается, что если апгрейднуть рабочий проект с 6.0 до 2008, тоже соберется нормально, хотя могу ошибаться.

я изначально делал на 2008. Потом тоже самое повторил на 6.0 (с нуля создал проект dll).

Заработало. Причем заработало именно на Win7 и Vista. 2008 глючил, а 6.0 ок. VS в обоих случаях стоят на XP.

 
drknn:
Попробуйте 226-й. Уже поднимался здесь вопрос о длл-ках. Народ пришёл к выводу, что 226-й билд самый стабильный.
Попробывал ещё 228, 229. Они одинаковы в моём случае. Похожи на 226. Работает всё, если не сразу инициализировать библиотеку. На 225 совсем не работают библиотеки. Стопорят терминал.
 

Пипец. Видать вопрос к разработчикам, либо в ДЛЛ-ке не всё ладно. Я на С++ не программлю - пытался как-то сделать пару-тройку прог, столкнулся с тем, что пока у тя установлена оболочка С++, у тя всё работает. Но стОит только перенести экзешник на другой комп, как сразу обнаруживается недостача какой-то dll-ки. Да и работа со строками не понравилась. Бросил я этот язык и так и остался на Delphi. Может Вам попробовать сделать свою ДЛЛ-ку на нём - с терминалом у меня такие длл-ки дружат вполне нормально...

P.S.

Так я и не понял, чего все так хвалят С++, если уже на уровне выбора оболочки для программирования с этим языком возникают проблемы...

 

поделюсь сомнениями и я.

К суперпрофи не примазываюсь, до профи не дотягиваю - мессаги никто не читает... коню ясно.

Но чем больше пишу кода (пока мало) - возникает вопрос:

как передаются параметры в функциях?

(по имени или по значению?)

есть подозрение, что строковые переменные при передаче лихачат...

;)

 
Sorento:

поделюсь сомнениями и я.

К суперпрофи не примазываюсь, до профи не дотягиваю - мессаги никто не читает... коню ясно.

Но чем больше пишу кода (пока мало) - возникает вопрос:

как передаются параметры в функциях?

(по имени или по значению?)

есть подозрение, что строковые переменные при передаче лихачат...

;)

Это можно легко выяснить. Передаёте в подпрограмму строковую переменную, заранее проинициализированную значением. В подпрограмме перво-наперво проверяете, что конкретно было передано. Например, вот так:

//+------------------------------------------------------------------+
//|                 Старт работы скрипта                             |
//+------------------------------------------------------------------+
int start(){
  string Stroka="Любая биллеберда";
  Alert("----------------------------------------");
        Alert("В функцию передано значение переменной Stroka = ",Stroka);
        Proverka(Stroka);
        Alert("----------------------------------------");
        return(0);
}
//+------------------------------------------------------------------+
//|                  Пользовательские подпрограммы                   |
//+------------------------------------------------------------------+

void Proverka(string Str){
  Alert("В функцию поступило значение = ",Str);
}
Причина обращения: