Поиск:

Ответ в темуСоздание новой темы Создание опроса
> функция CreateFile, как в нее передать параметр AnsiString 
:(
    Опции темы
Слава
Дата 4.7.2005, 13:11 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











У меня есть текст в Label1->Caption

как его всавить в функцию вместо переменной usbhub

Hub = CreateFile(usbhub,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL);

Заранее спасибо
  Вверх
MaximNR
Дата 4.7.2005, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 11.5.2005

Репутация: нет
Всего: 1



Label1->Caption.c_str()
smile
PM   Вверх
oper54
Дата 4.7.2005, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 13.5.2005

Репутация: нет
Всего: 1



Пишу с головы...
AnsiString str(Label1->Caption);

Hub = CreateFile(str.c_ctr(),
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL);

должно сработать....
Если нет
Код

  char* pbuff = new char[Label->Caption.Length() + 1]
   
  strcpy(pbuff, Label1->Caption.c_str());
  Hub = CreateFile(str.c_ctr(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ|        
                            FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
....
  delete[] pbuff;

Все елементарно
PM MAIL   Вверх
Слава
Дата 4.7.2005, 13:58 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
char* pbuff = new char[Label->Caption.Length() + 1]
 
  strcpy(pbuff, Label1->Caption.c_str());
  Hub = CreateFile(str.c_ctr(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ|       
                            FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
....
  delete[] pbuff;[/size]


Я так понял что вместо str.c_ctr() в самой функции надо pbuff вставить?

  Вверх
Guest
Дата 4.7.2005, 14:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В pbuff значение заносится
и компилируется все без ошибок
но функция не срабатывает ((
  Вверх
MaximNR
Дата 4.7.2005, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 11.5.2005

Репутация: нет
Всего: 1



pbuff здесь не обязятелен.
если функция не срабатывает нужно смотреть GetLastError.
PM   Вверх
Слава
Дата 4.7.2005, 14:28 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











через QueryDosDevice нашел свое устройство:
USB#Vid_10c4&Pid_0000#5&2904e43d&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed}

когда я вставляю его в функцию символьно то порт открывается:
Hub = CreateFile("\\\\.\\USB#Vid_10c4&Pid_0000#5&2904e43d&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed}",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL);

а в моей задаче нужно чтобы в функции стояла переменная.

Помогитеееееееееееееееееееееееее
Пожалуййййста.

  Вверх
MaximNR
Дата 4.7.2005, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 11.5.2005

Репутация: нет
Всего: 1



по идее разницы нет, переменная или константа, что можно попробовать:
1. задать константу прямо перед критфайл и убедиться, что всё работает.
char name[]="\\\\.\\USB#Vid_10c4&Pid_0000#5&2904e43d&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed}"
2. Потом усложнить задачу
AnsiString name="\\\\.\\USB#Vid_10c4&Pid_0000#5&2904e43d&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed}"
smile

я так делаю, когда вхожу в какой-либо ступорsmile

ну и конечно, при отладке нужно пссмотреть, что реально передается в функцию.
Ну может там слэши лишние и т.п.
PM   Вверх
Слава
Дата 5.7.2005, 00:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо за помощь, но помогло только
Цитата
char name[]="\\\\.\\USB#Vid_10c4&Pid_0000#5&2904e43d&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed}"


Остальные варианты тож посмотрел не работают.
Проверял что передается в функцию: все символы правильные но что то не работает

если подставлять чистый char без всякого перевода из AnsiString то все работает,
а как начинаю разные преобразования делать из Ansistring в char то начинаются баги.

Если у кого нить появятся свежие решения поделитесь пожалуйста.

P.S. Всем Спасибо за внимание.
  Вверх
chaos
Дата 5.7.2005, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 1
Всего: 44



а может так заработает
Код

int len = AnsiString.GetLength();
char *devname = new char[len];
strncpy(devname, AnsiString.c_str(), len);
//.....
delete[] devname;


ааа сорри, не заметил что такое уже предлагалось

Это сообщение отредактировал(а) chaos - 5.7.2005, 09:35
PM WWW   Вверх
Слава
Дата 5.7.2005, 10:12 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











С горем пополам я передал в функцию переменнию UsbHub (пришлось на чистых сях писать)

Теперь интересно узнать почему вместо

Цитата
L1->Caption ="Устройство готово к работе


У меня в L1->Caption заносится символьное имя устройства?:
\\\\.\\USB#Vid_10c4&Pid_0000#5&2904e43d&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed



Цитата
  Hub = CreateFile(usbhub,
                    GENERIC_READ | GENERIC_WRITE,
                    FILE_SHARE_READ | FILE_SHARE_WRITE,
                    NULL,
                    OPEN_EXISTING,
                    0,
                    NULL);
  if(HostControllerHandle0 == INVALID_HANDLE_VALUE) L1->Caption="Устройство не подключено";
  else L1->Caption ="Устройство готово к работе";


Заранее спасибо.

  Вверх
chaos
Дата 5.7.2005, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 1
Всего: 44



smile телепатов сдесь наверное нет!
а так на вскидку, может ты где накривил с чистыми сями или еще ченить, надо коду по больше потому-что точто ты говоришь мистика(если учесть что у тя все правельно)
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0590 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.