![]() |
|
Модераторы: bsa |
![]()
|
|
| tht |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.5.2006 Репутация: нет Всего: 1 |
компилятор Microsoft Visual C++ 2008 Express Edition
у меня крышу сносит, не могу сделать простейшую программу.
запускаю прогу "prog.exe file_name" в переменную dll_name_for_load передается только первая буква от строки "file_name" то есть "f", в общем то пробовал на мой взгляд уже несколько простых вариантов, и нифига не врубаюсь, почему переменная содержит строку в один символ только, когда как argv определяется во всю длину от строки "file_name". Это сообщение отредактировал(а) tht - 14.1.2010, 17:33 |
|||
|
||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: нет Всего: 17 |
А память выделить под строку?
|
|||
|
||||
| tht |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.5.2006 Репутация: нет Всего: 1 |
что за ... а попроще нельзя ?
Добавлено через 1 минуту и 14 секунд между прочим не помогло, веришь не веришь !!! |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
strcpy(dll_name_for_load,(char*)argv[1]);
Работает? Алсо под dll_name_for_load конечно же нужно память выделить. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| tht |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.5.2006 Репутация: нет Всего: 1 |
блин у меня три темы создалось одинаковых... глюк какой-то.
не помогает выделение памяти и strcpy(dll_name_for_load,(char*)argv[1]); не помогает. результат тот же |
|||
|
||||
| comcon1 |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: нет Всего: 17 |
а ну-ка посмотри сюда внимательно!
http://www.cplusplus.com/reference/clibrary/cstring/strncpy/
А вот теперь смотри, что случилось, когда я убрал выделение памяти:
Это сообщение отредактировал(а) comcon1 - 14.1.2010, 16:58 |
||||||
|
|||||||
| tht |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.5.2006 Репутация: нет Всего: 1 |
мне нужно под Microsoft Visual C++ 2008
но твой код все равно не помог, но скомпилировался |
|||
|
||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: нет Всего: 17 |
Мой код работает. И точка. Я тебе продемонстрировал логи. Если бы у меня был msvc, я бы тебе сказал какую буковку можно где поставить, чтобы было лучше. Но у меня есть стойкое ощущение, что все должно работать.
Посмотри внимательно на мой код и найди ошибки у себя. Данной программе похрену на чем компилиться и исполняться. Попробуй, возьми соответствующие моему коду мелкомягкие функции. P.S. Тьфу. Даже такую ###программу мелкомягкие технологии напичкивают каким-то калом. |
|||
|
||||
| tht |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.5.2006 Репутация: нет Всего: 1 |
хоть сколько точек ставь. я компилю твой код, результат тот же - один символ.
это во первых, во вторых, у моего компиля функция main ввыглядит иначе
и когда начинаю компилить твой код выдает ошибку что второй параметр фкнкции strncpy не может быть конвертирован в const char * и мне приходится там менять на (char*)argv[1] тогда компилияция проходит. но результат один символ. |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
comcon1 и правда выдал рабочий код. Правда можно было сделать чуть лучше и проще (для данного примера) (это я адресую топикстартеру - новичку, как я понимаю):
- память выделить конкретно под длину строки; - выделить ее статически; - глобальные инклуды включать угловыми скобками. >int _tmain(int argc, _TCHAR* argv[]) Бгг. Надо же, как микрософт с++ испортил)). -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
tht, выключи в проекте UNICODE. Просто у тебя _TCHAR это wchar_t, а не char!
|
|||
|
||||
| tht |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.5.2006 Репутация: нет Всего: 1 |
bsa Урррааа !!! тебе респект !!! помогло потому чт
всем спасибо за участие ! |
|||
|
||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: нет Всего: 17 |
Ты, надеюсь, воспринял все, что тебе написали, а не просто ограничился отключением юникода.
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |