Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Помогитеее!Не знаю, что делать с преобразованием типов...

Автор: 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) *
вопросик не в тему. В этой теме "Не знаю, что делать с преобразованием типов" обсуждается то что в названии. Создавай отдельную.

окей

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)