Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Вопрос: C++ vs Basic
Добавлено: 21.03.05 18:24
Автор вопроса: Дмитрий Щапов
Ответы
Всего ответов: 127
Номер ответа: 61
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #61
Добавлено: 26.03.05 21:05
Указатели Ret, S, F уничтожать не надо, это ячейки стека, при выходе из процедуры эти ячейки будут использованы для других целей. Уничтожать надо, вернее освобождать, куски памяти, если ты их запрашивал. Допустим запросил кусок памяти, получил указатель на него и запомнил например в Ret. Перед выходом их процедуры надо достать указатель из Ret и передать его в ф-цию, освобождающую память (например VirtualFree или HeapFree или GlobalFree).
Номер ответа: 62
Автор ответа:
Дмитрий Щапов
Вопросов: 71
Ответов: 321
Профиль | | #62
Добавлено: 26.03.05 21:06
АГА!!! Так энто работает только в MFC приложениях. Жаль. Не подходит. Для приложений не требующих ничего особого это супер. Но у меня DLL и в ней желательно сделать всё побыстрее.
\
\
И последние (надеюсь) вопросы из области строк.
==Как мне присвоить строке значения Chr(13)+Chr(10)
==Перевести в строку числа(блин, такая фигня, а вылетает)
Номер ответа: 63
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #63
Добавлено: 26.03.05 21:14
Юзайте STL для строк: быстро и удобно.
Пример:
#include <string>
int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow){
std::string s = "Hello, world!";
std::string t = "world";
MessageBox(0, (LPCSTR)s.replace(s.find(t), t.length(), "STL".c_str(), "Replace Example by GrEaT Sharp ", MB_ICONASTERISK);
return 0;
}
Номер ответа: 64
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #64
Добавлено: 26.03.05 21:16
Как это "присваивает"?
То, что выходная строка будет длиннее чем входная, тебя не смущает? Ты позаботился о том, чтобы места для выходной хватило?
И то, что эти строки, которые передаёшь в ф-цию, находятся в секции инициализированных данных, ничего?
Номер ответа: 65
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #65
Добавлено: 26.03.05 21:18
1) char crlf[3] = "\x0D\x0A";
2) itoa
Номер ответа: 66
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #66
Добавлено: 26.03.05 21:25
Sharp, ты ничего не путаешь?
#include <windows.h>
#include <string>
Этого достаточно???
Почему тогда компилятор вываливает кучу ошибок?
Номер ответа: 67
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #67
Добавлено: 26.03.05 21:29
Перевод строки можно сделать, воткнув в нужном месте "\n"
Номер ответа: 68
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #68
Добавлено: 26.03.05 21:40
#include <windows.h>
#include <string>
Этого достаточно???
Почему тогда компилятор вываливает кучу ошибок?
Номер ответа: 69
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #69
Добавлено: 26.03.05 22:49
он ещё забыл такое: #include <vector>
кстати:
Это шутка? Почти в каждом более менее сложном программном продукте любых разработчиков есть утечки! Это самая распостраненная ошибка!
Номер ответа: 70
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #70
Добавлено: 26.03.05 22:52
и ещё, я думаю, что STL не оч. удобное стредство. Классы MFC лучше и нагляднее. Возьмем например байтовый массив из STL - std::vector<BYTE> что ты скажешь, в нем лучшего чем в CByteArray ???
Номер ответа: 71
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #71
Добавлено: 26.03.05 23:05
Ну вот ошибки:
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
crfind.cpp
crfind.cpp(293) : error C2653: 'std' : is not a class or namespace name
crfind.cpp(293) : error C2065: 'string' : undeclared identifier
crfind.cpp(293) : error C2146: syntax error : missing ';' before identifier 's'
crfind.cpp(293) : error C2065: 's' : undeclared identifier
crfind.cpp(294) : error C2653: 'std' : is not a class or namespace name
crfind.cpp(294) : error C2146: syntax error : missing ';' before identifier 't'
crfind.cpp(294) : error C3861: 'string': identifier not found, even with argument-dependent lookup
crfind.cpp(294) : error C2065: 't' : undeclared identifier
crfind.cpp(300) : error C2228: left of '.replace' must have class/struct/union type type is ''unknown-type''
crfind.cpp(300) : error C2228: left of '.find' must have class/struct/union type type is ''unknown-type''
crfind.cpp(300) : error C2228: left of '.length' must have class/struct/union type type is ''unknown-type''
crfind.cpp(300) : error C2228: left of '.c_str' must have class/struct/union type
crfind.cpp(300) : error C3861: 's': identifier not found, even with argument-dependent lookup
crfind.cpp(300) : error C3861: 's': identifier not found, even with argument-dependent lookup
crfind.cpp(300) : error C3861: 't': identifier not found, even with argument-dependent lookup
crfind.cpp(300) : error C3861: 't': identifier not found, even with argument-dependent lookup
crfind.cpp(304) : error C2228: left of '.dwPageSize' must have class/struct/union type type is ''unknown-type''
Microsoft (R) Incremental Linker Version 7.10.3077
Номер ответа: 72
Автор ответа:
Дмитрий Щапов
Вопросов: 71
Ответов: 321
Профиль | | #72
Добавлено: 26.03.05 23:06
ВСЕМ ОГРООМНОЕ СПAСИБО!..!
Номер ответа: 73
Автор ответа:
Дмитрий Щапов
Вопросов: 71
Ответов: 321
Профиль | | #73
Добавлено: 26.03.05 23:10
p(293) : error C2653: 'std' : is not a class or namespace name
у меня был указан #include <string.h> - он мне это-же писал(да и многое др), поменял на #include <string> - всё нормалёк.
Номер ответа: 74
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #74
Добавлено: 26.03.05 23:15
#include <vector> - это увеличило количество ошибок раза в 4-5, постить уж не буду, а то и так мусора изрядно )) Появились ошибки типа не найдены какие-то хидеры
)))
Ребяты, написать и потестировать эту несчастную replace - 5 минут, так? Так.
Искать по всему свету эти хидеры, потом искать, что в них декларировано, что можно, что нет - это не один час. НАХРЕНА???
Делаться же все равно через API будет.
Делаем сами - делаем быстрее, и работает быстрее и размер меньше и головных болей никаких и чувство морального удовлетворения (т.е. кайф) ))
Номер ответа: 75
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #75
Добавлено: 26.03.05 23:20
DIMM, смотрел я и string.h и просто string - результата нет. Ну ладно, добился своего и хорошо