Почему программа нормально работает с флешки, но выдает ошибку при запуске с жесткого диска?
Ошибка 12007 - это доступ в интернет, не может получить адрес по имени домена. Проблема на одном компьютере с Windows 8.1. Хотя возможно даже не в компьютере дело, а в папке, но при этом папка самая обычная. При переносе из этой папки на флешку программа начинает работать нормально.
В смысле при переносе в другую папку на флешке не переносятся нужные файлы или переносятся не нужные? Библиотек действительно никаких нет, используются только стандартные типа user32.dll
Владимир Мартьянов: дело в том, что это программа написана мной. Ей не требуются дополнительные файлы совершенно точно. Все dll, которые она подгружает есть в системе. Тем более я написал, что она не работает в "родной" папке, а начинает работать после переноса на флешку.
Владимир Мартьянов: да, наверное кому-то другому написал. если программу переписать из папки на флешку, то начинается подключаться к сайту и скачивать данные. если в "родной" папке, в которой файл создается компиляторов, то программа запускается, но возникает ошибка подключения (12007 - не может получить адрес домена, но это означает просто, что соединение ему не дают).
Видимо ваша программа попросту непортабельная. Портабельные версии программ можно легко переносить из одного место в другое, и именно их часто ставят на флешки, чтобы всегда иметь под рукой. Но не все программы портабельны. Некоторые прописываются, раскидывают свои библиотеки по разным папкам, и так просто перенос их невозможен...
gene4000: Компилятором? Это самоделка какая то что ли? Тогда проще запустить отладку и посмотреть что программе не нравится.... Или
Не запускается, а пишет какую то ошибку? Текст в студию.
Программе "не нравится", что ее система не пускает в интернет. Ошибка 12007, которая означает, что нет доступа, а конкретно - невозможно получить адрес по имени домена. Текст программы стандартный "из учебника", используется уже не в первой программе. Раньше все работало. Проблема не в программе, как выяснилось, а в Windows. Потому что на других компьютерах работает.
gene4000: Кстати, вы выше написали "невозможно получить адрес по имени домена". Возможно проблема и не в Виндовс вовсе, а в недоступности с данного компа возможности получать адреса по имени домена. Попробуйте просто из командной строки пингануть любое доменное имя... Ping Mail.ru например...
gene4000: Запуск программ с локального диска компьютера и с флешки (сетевых дисков) отличаются. Странно то, что обычно система наоборот склонна блокировать по умолчанию (или переспрашивать разрешения пользователя) о запуске программ именно со съемных и сетевых носителей, как с потенциально опасных источников ... А у вас наоборот........
Alejandro: вот-вот, именно поэтому вопрос и возник. уже несколько дней голову ломаю. ситуация еще интересней. есть похожая программа на диске, но в другой папке (то же самое скомпилированное в другой папке), если положить в первую папку, то она тоже перестает работать. Свойств у папки вроде бы никаких волшебных нет. На флешку свойства какие-то не пишутся, поэтому может быть что свойства у файла пропадают. Но этих свойств система никак не показывает.
gene4000: Может быть покопаться в настройках компилятора, может он какие то интересные свойства программе добавляет? У меня уже фантазия начинает заканчиваться =)))
Alejandro: там действительно множество настроек. сложно с ними разобраться, но кое-что там перенастроено довольно сильно. Самое интересное, что изначально тот же компилятор на другом компьютере под W7 совершенно не создает проблем. Сначала я думал, что проблема именно в восьмерке, но оказалось, что на других компах работает и на этом же тоже работает с флешки. Может какое-то прокси включается, если из не той папки запускаешь. Не знаю, поэтому и задаю вопросы в интернетах, т.к. просто поиском ничего похожего найти не удалось.
Alejandro: чтобы сделать пинг "доменного имени" нужно знать ip-адрес. ошибка возникает "в момент" получения ip-адреса из доменного имени. это делает сама система, на практике это происходит в момент вызова функции HttpSendRequest - той, которая запускает подключение к домену и после которой идет функция чтения данных. Проблемы не в DNS, проблемы в невозможности "подключения к интернету" в программе запущенной из определенной папки.
gene4000: "чтобы сделать пинг "доменного имени" нужно знать ip-адрес". вовсе не обязательно. в программе (обычно) можно выполнить вызов внешней команды. я имел в виду вызвать сначала ping mail.ru, а затем ping 8.8.8.8