| View previous topic :: View next topic |
| Author |
Message |
FeyFre
Joined: 07 Aug 2007 Posts: 1907 Location: Vinnitsa, Ukraine
|
Posted: Tue Dec 21, 2010 10:28 pm Post subject: |
|
|
Instructor, у меня всегда свежая (из CVS). (Сколько же там Warning-ов... приблизительно столько же при компиляции для Wine)
Вот Templates Speech - к версии 4.5.2 (к обоим 32 и 64 битным) по идее должны работать. Нужно что-бы кто-то владелец 64-бит потыкал, ибо отладить пока не могу.
SpellCheck - только 32 битная для 4.5.2, 64 битных реализаций любой орфографической системы пока не нашел. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4684
|
Posted: Wed Dec 22, 2010 3:21 pm Post subject: |
|
|
FeyFre
Warning'и потихоньку убираю.
Speech пишет нет какой-то dll.
Templates не вставляет файл:
| Code: | | FILECONTENT fc = {hFile,(DWORD)-1,dc.nCodePage,dc.bBOM,NULL}; |
Надо:
| Code: | | FILECONTENT fc = {hFile,(UINT_PTR)-1,dc.nCodePage,dc.bBOM,NULL}; |
|
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1907 Location: Vinnitsa, Ukraine
|
Posted: Wed Dec 22, 2010 5:05 pm Post subject: |
|
|
| Quote: | | Speech пишет нет какой-то dll. | MSVCR90.DLL ?
Открутить бы им руки за такую систему. Компилятор умничает надо и не надо, а студия помогает. Нужно поставить в настройках статическую линковку с CRT(я потом гляну где оно нашло CRT вообще)
В Templates специально делал for-ы при формровании строк, что-бы не использовать memcpy, а компилятор-идиот цикл "оптимизирует" в вызов memcpy(и только x64, на 32 нормально) и матерится что не может линковаться, ибо я CRT отключил(взять что-ли на ассемблере написать?). | Quote: | | Templates не вставляет файл: | Поправим.
Не знаете часом какого-нибудь GUI-шного инструмента для работы с CVS? А то TortosieCVS как на зло ничего не умеет, коммандная строка и то лучше. Как посмотреть историю файла я так и не нашел, тем более получить визуальный diff. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4684
|
Posted: Wed Dec 22, 2010 5:24 pm Post subject: |
|
|
FeyFre
| Quote: | | Компилятор умничает... | В StrFunc.h лежат xmemcpy и xmemset.
| Quote: | | Не знаете часом какого-нибудь GUI-шного инструмента для работы с CVS? | http://akelpad.cvs.sourceforge.net ? |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1907 Location: Vinnitsa, Ukraine
|
Posted: Wed Dec 22, 2010 5:32 pm Post subject: |
|
|
| Quote: | | http://akelpad.cvs.sourceforge.net | Не дружит с кириллицей(changelog не почитать вообще). Да и в обозревать не особо хочется лазить по много раз в минуту. SourceForge на защищенных страницах(https) ползает хуже некуда. | Quote: | | В StrFunc.h лежат xmemcpy и xmemset. | А как им пользоваться? А то я включаю, а оно ничего не дало. Приходиться его то ли по два раза включать, с define-ами посередине, то ли ещё как-то по-другому шаманить. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4684
|
Posted: Wed Dec 22, 2010 5:41 pm Post subject: |
|
|
FeyFre
Я тоже TortoiseCVS пользуюсь. Правда ничего кроме Add/Update/Commit не использовал
| Code: | | А как им пользоваться? | Можно просто код функций выдернуть. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1907 Location: Vinnitsa, Ukraine
|
Posted: Wed Dec 22, 2010 8:54 pm Post subject: |
|
|
| Quote: | | В StrFunc.h лежат xmemcpy и xmemset. |
| Quote: | | Можно просто код функций выдернуть. | Хахаха. Компилятор имел нас в виду. Единственный вызов xmemcpy он развернул inline а потом отпимизировал на всякий случай в вызов memcpy(в ассемблер смотрел... кстати забыл отключить генерацию в проекте в исходниках) В общем с горем по полам получилось, но насчет оптимальности не ручаюсь.
Новые архивы с бинарниками/исходниками на тех же местах.
ЗЫ: у Вас | Code: | | void* xmemcpy(void *dest, const void *src, UINT_PTR count); | , я бы порекомендовал сделать | Code: | | void* xmemcpy(void *dest, const void *src, size_t count); | (или WINAPI-шный SIZE_T) так сразу понятнее для чего параметр. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4684
|
Posted: Wed Dec 22, 2010 9:39 pm Post subject: |
|
|
FeyFre
Templates стал отображать пустые папки в TreeView.
xmemcpy и xmemset на CVS имеют другой вид, именно для того, чтобы компилятор не подменял вызовом memcpy, memset. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1907 Location: Vinnitsa, Ukraine
|
Posted: Wed Dec 22, 2010 10:32 pm Post subject: |
|
|
| Quote: | | Templates стал отображать пустые папки в TreeView. | Исправил(умножил на sizeof(WCHAR) ), перезалил.
| Quote: | | xmemcpy и xmemset на CVS имеют другой вид, именно для того, чтобы компилятор не подменял вызовом memcpy, memset. | У меня компилятор на это смотрит. Изменил аргумент на UINT_PTR - та же история(см. Templates.c строчку 421) |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4684
|
Posted: Thu Dec 23, 2010 6:19 am Post subject: |
|
|
FeyFre
Текущая версия xmemcpy выглядит так:
| Code: | void* xmemcpy(void *dest, const void *src, UINT_PTR count)
{
unsigned char *byte_dest=(unsigned char *)dest;
unsigned char *byte_src=(unsigned char *)src;
//Special form of memcpy implementation to avoid
//compiler from replace this code with memcpy call.
if (byte_dest != byte_src)
{
if (count)
{
for (;;)
{
*byte_dest=*byte_src;
if (!--count) break;
++byte_dest;
++byte_src;
}
}
}
return dest;
} |
VS2005 такой код уже не заменяет на memcpy. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4684
|
Posted: Tue Dec 28, 2010 4:28 pm Post subject: |
|
|
FeyFre
Интересно как был Speech откомпилирован на x64. У меня
выдает | Code: | Creating library Speech.lib and object Speech.exp
Speech.obj : error LNK2019: unresolved external symbol CLSID_SpObjectTokenCatego
ry referenced in function GetEnumerator
Speech.obj : error LNK2019: unresolved external symbol IID_ISpObjectTokenCategor
y referenced in function GetEnumerator
Speech.obj : error LNK2019: unresolved external symbol CLSID_SpVoice referenced
in function CreateSpeaker
Speech.obj : error LNK2019: unresolved external symbol IID_ISpVoice referenced i
n function CreateSpeaker
Speech.obj : error LNK2019: unresolved external symbol SPDFID_WaveFormatEx refer
enced in function Speak2File
Speech.obj : error LNK2019: unresolved external symbol CLSID_SpStream referenced
in function Speak2File
Speech.obj : error LNK2019: unresolved external symbol IID_ISpStream referenced
in function Speak2File
Speech.dll : fatal error LNK1120: 7 unresolved externals |
и microsoft говорит, что нужно использовать
| Code: | | CLSIDFromProgID(pProgID, &clsid); |
http://msdn.microsoft.com/en-us/library/ms717063(VS.85).aspx
А Templates при компиляции для x64 все еще
ругается | Code: | Microsoft (R) C/C++ Optimizing Compiler Version 14.00.40310.41 for AMD64
...
Creating library Templates.lib and object Templates.exp
Templates.obj : error LNK2019: unresolved external symbol memcpy referenced in f
unction FillTreeCtrl
Templates.dll : fatal error LNK1120: 1 unresolved externals |
. Ошибка исчезает после замены xmemcpy на код, который указан выше. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1907 Location: Vinnitsa, Ukraine
|
Posted: Tue Dec 28, 2010 5:01 pm Post subject: |
|
|
Instructor
Если склероз мне не изменяет, то мне тоже материлось так же. Решилось добавлением в список библиотек для компоновки sapi.lib(имя можно уточнить в файле vcproj с исходниками). И вопреки написанному в тексте по указанной ссылке 64-битная версия sapi.lib внезапно была обнаружена в 64-битном Windows SDK Так что плясок с бубном CLSIDFromProgID вовсе и не потребовалось.
А в моей компиляции на 64-битном работает? Просто интересно знать на сколько сильно в Редмонде опупели. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4684
|
Posted: Tue Dec 28, 2010 5:16 pm Post subject: |
|
|
FeyFre
Запускается, показывает "Microsoft Sam", но на машине не установлены аудио драйвера, поэтому не известно.
- При проигрывании в файл, что на 32, что на 64 битной версии "Stop" не убирается и звук не идет (если должен идти), хотя файл сохраняется.
- На 800x600 крестик закрытия панели чуть-чуть не вмещается. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1907 Location: Vinnitsa, Ukraine
|
Posted: Tue Dec 28, 2010 8:48 pm Post subject: |
|
|
| Quote: | | Запускается, показывает "Microsoft Sam", но на машине не установлены аудио драйвера, поэтому не известно. | Хм, я как то не догадался протестировать на "глухой-немой" машине Попробуем.
Если будет желание потестировать ещё, то вот тут http://www.ntonyx.com/vac.htm есть виртуальный аудио терминатор.
| Quote: | | - При проигрывании в файл, что на 32, что на 64 битной версии "Stop" не убирается и звук не идет (если должен идти), хотя файл сохраняется. | Без звуковой карточки?
| Quote: | | - На 800x600 крестик закрытия панели чуть-чуть не вмещается. | Сдвигаю.
PS: Что-то на CVS версии 32-битная постройка(моя) при запуске выпадает(CRT-шной ошибкой). |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4684
|
Posted: Wed Dec 29, 2010 5:50 am Post subject: |
|
|
FeyFre
Speech на x64 со звуком проверил - работает исправно.
| Quote: | | Без звуковой карточки? | В любом случае.
| Quote: | | PS: Что-то на CVS версии 32-битная постройка(моя) при запуске выпадает(CRT-шной ошибкой). | Поконкретнее - какая ошибка? |
|
| Back to top |
|
 |
|