MOPO3 |
Отправлено: 20.08.2004, 09:37 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 22
|
Перевожу прогу с Визуал цпп на билдер 6. На что надо заменить CString ? На AnsiString не проходит. |
|
olegenty |
Отправлено: 20.08.2004, 10:28 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
для пущей простоты понимания проблемы — опубликуй кусочек кода с указанием, что же не проходит... потому что кроме AnsiString пользоваться реально нечем. Вернее, AnsiString в корягу встроенный, Builder его хорошо понимает, и пользоваться чем-то альтернативным вряд ли есть смысл...
|
|
Guest |
Отправлено: 20.08.2004, 10:59 |
|
Не зарегистрирован
|
ShortString
AnsiString
WideString
А описывается CString в afx.h расположенный в
C:\Program Files\Borland\CBuilder6\Include\Mfc
CString работает только в MFC
Только непонятно, чем не подходит AnsiString, она удобней и лучше |
|
MOPO3 |
Отправлено: 20.08.2004, 11:11 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 22
|
Я не знаю как вот это перевести на билдер :
CODE | CString s;
GetCurrentDirectory(MAX_PATH,s.GetBuffer(MAX_PATH));
s.ReleaseBuffer();
if (s.Right(1) != "\\")
s += "\\";
s += "filename.dat"; |
Отредактировано MOPO3 — 20/08/2004, 11:13 |
|
Konstantine |
Отправлено: 20.08.2004, 11:22 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
в текущей директории можно и без пути :-)
а что именно не можешь перевести? GetCurrentDirectory — вроде такая есть ( может правда GetCurDir или GetCurrentDir — посмотри в хелпе)
вместо Right — s.SubString(1,1)
а если += не работает, то s=s+"\\" и т.д.
а что такое ReleaseBuffer?
|
|
MOPO3 |
Отправлено: 20.08.2004, 11:27 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 22
|
ReleaseBuffer : http://msdn.microsoft.com/library/default....leasebuffer.asp |
|
Konstantine |
Отправлено: 20.08.2004, 13:08 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
Я то конечно не доконца понял для чего он, но думаю, что без него здесь вполне можно
|
|
olegenty |
Отправлено: 20.08.2004, 13:17 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
то, что тебе надо, выглядит так:
CODE |
AnsiString s = ExtractFilePath(Application->ExeName) + "filename.dat";
|
для каталога, где лежит exe.
или, в общем случае, для некоего текущего каталога:
CODE |
AnsiString s = GetCurrentDir() + "\\filename.dat";
|
|
|