Автор: Shahid 3.12.2008, 2:45
Уважаемые форумчане помогите плиззз разобраться с ошибками в моей проге...
Воообщем моя программа создает цифровую подпись к файлам...
Прилагаю архив с текстом проги: http://dump.ru/file/1275115
Компилятор выводит ошибки что не может преобразовать тип вот в этих строках:
privateKey[i] = tempChar;
1>.\mainwindow.cpp(148) : error C2440: '=' : cannot convert from 'QChar' to 'unsigned char'
FILE* signedFile = fopen ( signedFileName, "r" );
1>.\mainwindow.cpp(179) : error C2664: 'fopen' : cannot convert parameter 1 from 'QString' to 'const char *'
FILE* eSign = fopen ( signedFileName+".esign", "w" );
1>.\mainwindow.cpp(183) : error C2664: 'fopen' : cannot convert parameter 1 from 'const QString' to 'const char *'
signature[i] = tempChar;
1>.\mainwindow.cpp(201) : error C2440: '=' : cannot convert from 'QChar' to 'unsigned char'
Посмотрите пожаалуйста, без вас не знаю что буду делать, это моя последняя надежда...
Заранее спасибо!!!
Автор: Litkevich Yuriy 3.12.2008, 8:05
Shahid, а где pro-файл?
Shahid, стоит ли делать такие вставки при програмировании на Qt:
_asm
{
push eax
mov eax, tempInt
rol eax, 1
mov tempInt, eax
pop eax
}
Цитата(Shahid @ 3.12.2008, 5:45)
privateKey[i] = tempChar;
1>.\mainwindow.cpp(148) : error C2440: '=' : cannot convert from 'QChar' to 'unsigned char'
unsigned char privateKey[8];
QChar tempChar;
см. http://crossplatform.ru/documentation/qtdoc4.3/qchar.php#toAscii
Цитата(Shahid @ 3.12.2008, 5:45)
FILE* signedFile = fopen ( signedFileName, "r" );
1>.\mainwindow.cpp(179) : error C2664: 'fopen' : cannot convert parameter 1 from 'QString' to 'const char *'
FILE* eSign = fopen ( signedFileName+".esign", "w" );
1>.\mainwindow.cpp(183) : error C2664: 'fopen' : cannot convert parameter 1 from 'const QString' to 'const char *'
signature[i] = tempChar;
1>.\mainwindow.cpp(201) : error C2440: '=' : cannot convert from 'QChar' to 'unsigned char'
аналогично предыдущей
Автор: Shahid 3.12.2008, 12:19
Litkevich Yuriy, с ассемблерными вставками все нормально, я компилирую в MSVisual C++.Там ассемблерные вставки нормально распознаются.
Цитата(Litkevich Yuriy @ 3.12.2008, 8:05)
см. QChar::toAscii()
Спасибо, попробую...
FILE* signedFile = fopen ( signedFileName, "r" );
1>.\mainwindow.cpp(179) : error C2664: 'fopen' : cannot convert parameter 1 from 'QString' to 'const char *'
А вот здесь как сделать преобразование??? Ведь тут немного другое, здесь из QString в const char *, а там было из QChar в unsigned char
И еще вопросик я сделал заставку при запуске проги, но она появляется в центре экрана и сразу же пропадает...Как мне сделать задержку, чтобы заставка показывалась пару секунд?
А как сделать, чтобы окно программы появлялось в нужном мне месте экрана, а то оно появляется всегда в левой верхней части экрана....
Автор: Litkevich Yuriy 3.12.2008, 12:31
Цитата(Shahid @ 3.12.2008, 15:19)
с ассемблерными вставками все нормально,
несогласен, их лучше вынести в отдельный файл в отдельные функции, а в файле где ты занимаешься высокоуровневым програмированием вызывать эти функции.
Цитата(Shahid @ 3.12.2008, 15:19)
А вот здесь как сделать преобразование??? Ведь тут немного другое, здесь из QString в const char *
а ты попробуй как я сказал посмтреть в доке, только уже по QString
Цитата(Shahid @ 3.12.2008, 15:19)
И еще вопросик я сделал заставку при запуске проги, но она появляется в центре экрана и сразу же пропадает...
вопросик не в тему. В этой теме "Не знаю, что делать с преобразованием типов" обсуждается то что в названии. Создавай отдельную.
Автор: Shahid 3.12.2008, 12:35
Цитата(Litkevich Yuriy @ 3.12.2008, 12:31)
вопросик не в тему. В этой теме "Не знаю, что делать с преобразованием типов" обсуждается то что в названии. Создавай отдельную.
окей