toweroff 1 11 июля, 2013 Опубликовано 11 июля, 2013 · Жалоба Есть такая Sleep() и есть метод класса такой же компилятор не понимает , что ему вызывать :) А нужна именно внешняя функция. Как к ней дорваться? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 11 июля, 2013 Опубликовано 11 июля, 2013 · Жалоба ::Sleep() ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 11 июля, 2013 Опубликовано 11 июля, 2013 · Жалоба ::Sleep() ? а при этом разве как раз не метод класса будет вызываться? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 11 июля, 2013 Опубликовано 11 июля, 2013 · Жалоба Нет, оператор "::" без имени слева - это обращение к глобальному идентификатору. Если слева будет имя класса, то обращение к статическому полю класса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kolobok0 0 11 июля, 2013 Опубликовано 11 июля, 2013 · Жалоба ...разве ...не метод класса будет вызываться? OFF/2: для чёткости в коде заведите нэймспэйсы. и явно указывайте их. тогда разночтения уменьшатся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 11 июля, 2013 Опубликовано 11 июля, 2013 · Жалоба Я, похоже, всех ввел в заблуждение... :( эта Sleep() - которая мне нужна - определена в winbase.h После того, как я подключаю TIdHTTP, Sleep() уже берется из Idglobal.hpp (по крайней мере, мне так cbuilder сообщает) У одной параметр unsigned int ATime, у второй - unsigned long dwMilliseconds Мне нужна та, которая в winbase.h и с параметром unsigned long dwMilliseconds и namespace там не определено Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 12 июля, 2013 Опубликовано 12 июля, 2013 · Жалоба т.е. второй Sleep тоже глобальный, без классов и неймспейсов? И оно компилится нормально? Значит unsigned long и unsigned int у вас разные типы. Попробуйте явно приводить параметр к нужному типу, т.е. как то так - Sleep((unsigned long)1); Вообще стоит сделать обертку (например, вынести winbase.h в отдельный cpp-файл, функции которого будут просто вызывать соответствующие API-шные функции из winbase), что бы исключить случайное использование одной функции вместо другой. Иначе такой конфликт рано или поздно приведет к неочевидному багу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 13 июля, 2013 Опубликовано 13 июля, 2013 · Жалоба т.е. второй Sleep тоже глобальный, без классов и неймспейсов? И оно компилится нормально? Значит unsigned long и unsigned int у вас разные типы. Попробуйте явно приводить параметр к нужному типу, т.е. как то так - Sleep((unsigned long)1); ага, ясно. Думаю, должно сработать Вообще стоит сделать обертку (например, вынести winbase.h в отдельный cpp-файл, функции которого будут просто вызывать соответствующие API-шные функции из winbase), что бы исключить случайное использование одной функции вместо другой. Иначе такой конфликт рано или поздно приведет к неочевидному багу. да, может. Но из всего winbase мне нужна только эта функция, так что, думаю, все будет в порядке. В любом случае, теперь понятно, на что обращать внимание спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться