Вход на сайт
проблема с atol и CString
NEW 22.05.06 18:31
в ответ aleksej2k 22.05.06 15:26
Существуют два варианта GetBuffer http://msdn2.microsoft.com/en-us/library/kt26tkzx(vs.80).aspx - с параметром и без (какой-то "умник" решил совместить две разных операции в одной функции
), первая предназначена для аллокации большего буфера, чтобы туда что-либо записать, и затем сохранить с помощью ReleaseBuffer
( Какой идиот это придумал? )
Так что ищи ошибку у себя, минимизируй проблему до минимальной компилируемой программы.


Так что ищи ошибку у себя, минимизируй проблему до минимальной компилируемой программы.
NEW 22.05.06 18:57
да, их два есть, оба пробовал, разницы совсем нету, оба выдают тоже самое.
ошибки вобщето не может быть, может только компайлер дурит, вобще с 8 версии он начел ко всякой мелочи придератся, уже жалею что старый диск с седьмой версией выкинул.
в ответ scorpi_ 22.05.06 18:31
В ответ на:
Существуют два варианта GetBuffer http://msdn2.microsoft.com/en-us/library/kt26tkzx(vs.80).aspx - с параметром и без (какой-то "умник" решил совместить две разных операции в одной функции ), первая предназначена для аллокации большего буфера, чтобы туда что-либо записать, и затем сохранить с помощью ReleaseBuffer ( Какой идиот это придумал? )
Так что ищи ошибку у себя, минимизируй проблему до минимальной компилируемой программы.
Существуют два варианта GetBuffer http://msdn2.microsoft.com/en-us/library/kt26tkzx(vs.80).aspx - с параметром и без (какой-то "умник" решил совместить две разных операции в одной функции ), первая предназначена для аллокации большего буфера, чтобы туда что-либо записать, и затем сохранить с помощью ReleaseBuffer ( Какой идиот это придумал? )
Так что ищи ошибку у себя, минимизируй проблему до минимальной компилируемой программы.
да, их два есть, оба пробовал, разницы совсем нету, оба выдают тоже самое.
ошибки вобщето не может быть, может только компайлер дурит, вобще с 8 версии он начел ко всякой мелочи придератся, уже жалею что старый диск с седьмой версией выкинул.

NEW 22.05.06 19:27
Работает хоть в версии 7.1, хоть в 8.0. Так что, как я уже сказал, локализируй проблему, и ищи ошибку у себя.
в ответ aleksej2k 22.05.06 18:57
В ответ на:
#include <afx.h>
#include <iostream>
int main()
{
CString ant("123");
long zahl = atol( ant.GetBuffer() );
std::cout << zahl << std::endl;
}
Работает хоть в версии 7.1, хоть в 8.0. Так что, как я уже сказал, локализируй проблему, и ищи ошибку у себя.
NEW 22.05.06 19:31
в ответ Murr 22.05.06 17:50
Найди тему про StdioFile и в ней ссылку на какую-нить книжку по С++ для начинающих.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_m...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_m...
NEW 22.05.06 19:45
в ответ scorpi_ 22.05.06 19:27
спасибо за помощ, но это у меня тоже не работает.
но смастерил кое что другое что работает:
но смастерил кое что другое что работает:
В ответ на:
CString csZahl("19991230");
long Begin=0;
for(int a=0; a<csZahl.GetLength(); a++){
int zehner=1;
for(int b=0; b<a; b++)zehner*=10;
Begin+=atol((char*)csZahl.Mid(csZahl.GetLength()-a-1).AllocSysString())*zehner;
}
CString csZahl("19991230");
long Begin=0;
for(int a=0; a<csZahl.GetLength(); a++){
int zehner=1;
for(int b=0; b<a; b++)zehner*=10;
Begin+=atol((char*)csZahl.Mid(csZahl.GetLength()-a-1).AllocSysString())*zehner;
}
NEW 22.05.06 19:52
в ответ aleksej2k 22.05.06 19:45
Фигнёй не занимайся, и не прыгай с бубном. Если мой пример не работает, значит у тебя студия неправильно установлена/отконфигурирована. Значит надо переустанавливать, или искать ошибку в данном направлении. А то это неизвестно где и когда ещё вылезет.
NEW 22.05.06 20:14
в ответ scorpi_ 22.05.06 19:52
да, я о том что она не правильно настоена тоже думал, потому что часто глупые ошибки выдает. но не знаю как и что настроить. все оставил как было после инсталяции. думаю все доложно быть стандартно.
у меня даже ощибки сообщает при следующем коде:
MessageBox("123456");
что за глупости понять не могу)
у меня даже ощибки сообщает при следующем коде:
MessageBox("123456");
что за глупости понять не могу)
NEW 23.05.06 16:28
в ответ JacksonB 23.05.06 16:19
NEW 24.05.06 11:43
Как же достали писатели с кривыми руками сваливающие собственные ошибки на других...
Запомни - пока ты не стал C++ - Гуру в 999999 случаях из миллиона если что-то не работает, то это твоя собственная ошибка. Когда станешь Гуру, количество твоих ошибок уменьшится до 99 из 100, оставшийся один случай - действительно баг.
Вот объясни например, почему ты так и не сказал, в чём заключалось неработание моего примера?
Кстати в данном случае действительно лучше писать long zahl = atol( ant ), так как оператор const char* не производит никаких лишних телодвижений, просто возвращяя внутренний указатель на строку.
в ответ aleksej2k 23.05.06 23:07
В ответ на:
но к сажелению я имею восьмую версию, и она не понятно почему дает ошибки, и компилирует по турецки.
но к сажелению я имею восьмую версию, и она не понятно почему дает ошибки, и компилирует по турецки.
Как же достали писатели с кривыми руками сваливающие собственные ошибки на других...
Запомни - пока ты не стал C++ - Гуру в 999999 случаях из миллиона если что-то не работает, то это твоя собственная ошибка. Когда станешь Гуру, количество твоих ошибок уменьшится до 99 из 100, оставшийся один случай - действительно баг.
Вот объясни например, почему ты так и не сказал, в чём заключалось неработание моего примера?
Кстати в данном случае действительно лучше писать long zahl = atol( ant ), так как оператор const char* не производит никаких лишних телодвижений, просто возвращяя внутренний указатель на строку.
I did it my
way.
NEW 24.05.06 14:49
в ответ scorpi_ 24.05.06 11:43
твой пример я вставил себе в прогу, он мне начел сообщать ошибки и я все выкинул сного.
погляди картинку, и увидеш сам.
погляди картинку, и увидеш сам.