Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Строковые Типы даных, LPCWSTR и wchar_t* 
V
    Опции темы
NOCaut
Дата 8.5.2011, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



Я непонимаю что такое виравнивание но др структури екмовпадают (Delphi и c++) и я нету память читаю ((
Где про ето можно почитать?


Это сообщение отредактировал(а) NOCaut - 8.5.2011, 23:13
PM MAIL   Вверх
volatile
Дата 8.5.2011, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 16
Всего: 85



Цитата(NOCaut @  8.5.2011,  23:11 Найти цитируемый пост)
Я непонимаю что такое виравнивание но др структури екмовпадают 

а я не понимаю что такое екмовпадают

да и потом, может дело и не в выравнивании, это только мое предположение. Может вообще типы разные.
Я, к сожалению, не телепат.

Цитата(NOCaut @  8.5.2011,  23:11 Найти цитируемый пост)
Где про ето можно почитать?

например здесь
http://msdn.microsoft.com/en-us/library/2e...1(v=vs.80).aspx

PM MAIL   Вверх
NOCaut
Дата 9.5.2011, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



Смотрю так

Код

int kk = sizeof(*st);
   _ltow(kk,str,10);
    MessageBox(0,str,str,0);


C++ размер 4210068

Код


typedef  wchar_t MasOfWChar[255]; 
typedef MasOfWChar TSyncUpdate[4000];
typedef MasOfWChar TSyncError[0..1][4000]; 
typedef MasOfWChar TSyncPath[255];

struct StructShareMem
{
    bool Active; 
    bool UpdateAll;
    // status S_OK and S_Update
    int SyncUpdateCount;
    TSyncUpdate SyncUpdate; 
    // status S_Error and S_Error text
    int SyncErrorCount;
    TSyncError SyncError;
    // array of path sync
    int SyncPathCount;
    TSyncPath SyncPath;
};



Delphi размер 6276625

Код

type
  ShortstringW = array[0..255] of WideChar;
  TSyncUpdate = array[ 0..4000] of ShortStringW;
  TSyncPath = array[ 0..255 ] of ShortStringW;
  TSyncError = array[0..1, 0..4000 ] of ShortStringW;

    p_struct=^somestruct;
  somestruct = record
    Active: Boolean;
    UpdateAll: Boolean;
    // status S_OK and S_Update
    SyncUpdateCount: Integer;
      SyncUpdate: TSyncUpdate;
    // status S_Error and S_Error text
    SyncErrorCount: Integer;
    SyncErrorPath: TSyncError;
    // array of path sync
    SyncPathCount: Integer;
    SyncPath: TSyncPath;
  end;




Это сообщение отредактировал(а) NOCaut - 9.5.2011, 13:25
PM MAIL   Вверх
NOCaut
Дата 9.5.2011, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



посля упакование структури Размер изменился на 4 кб а в delphi после использовани packed на 3. Они должни били уровнятся или мне работать с етой памятю? 

PM MAIL   Вверх
NOCaut
Дата 9.5.2011, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



Ошибку нашол всем спасибо!!!

Это сообщение отредактировал(а) NOCaut - 9.5.2011, 15:47
PM MAIL   Вверх
Dem_max
Дата 9.5.2011, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



String Functions   http://msdn.microsoft.com/en-us/library/ff...0(v=VS.85).aspx

Код

CharLower
CharLowerBuff
CharNext
CharNextExA
CharPrev
CharPrevExA
CharToOem
CharToOemBuff
CharUpper
CharUpperBuff
IsCharAlpha
IsCharAlphaNumeric
IsCharLower
IsCharUpper
LoadString
lstrcat
lstrcmp
lstrcmpi
lstrcpy
lstrcpyn
lstrlen
OemToChar
OemToCharBuff
wsprintf
wvsprintf


String Safe func  http://msdn.microsoft.com/en-us/library/ms...6(v=VS.85).aspx

Это сообщение отредактировал(а) Dem_max - 9.5.2011, 17:32


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
NOCaut
Дата 9.5.2011, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



Спасибо
PM MAIL   Вверх
NOCaut
  Дата 9.5.2011, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



Помогите разобратся как работает функция 
Код

wchar_t* StrWToStr2(MasOfWChar strW) 
{
    wchar_t * p = wcschr( strW, L'$' );
    if (p) *p = 0;
    return strW;
}


Хочи и ету такой сделать:

Код

wchar_t* copy(wchar_t* strW,int n)
{
  MasOfWChar  k;
  int i = 0;
  for (i; i != n; i++)
    k[ i ] = strW[ i ];
  k[ i] = L'\0';
  return strW;
}

PM MAIL   Вверх
volatile
Дата 9.5.2011, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 16
Всего: 85



Цитата(NOCaut @  9.5.2011,  22:29 Найти цитируемый пост)
Помогите разобратся как работает функция 

Почитайте здесь

Цитата(NOCaut @ 9.5.2011,  22:29)
Хочи и ету такой сделать:
Код

wchar_t* copy(wchar_t* strW,int n)
{
  MasOfWChar  k;
  int i = 0;
  for (i; i != n; i++)
    k[ i ] = strW[ i ];
  k[ i] = L'\0';
  return strW;
}


Эта функция не имеет смысла. Создается массив k, в него копируется строка, и затем при выходе, массив уничтожается без какого либо использования.

полный аналог (тоже не имеет смысла)
Код

wchar_t* copy(wchar_t* strW, int n)
{
   MasOfWChar  k;
   wmemcpy( k, strW, n);
   k[n] = 0;
   return strW;
}

PM MAIL   Вверх
NOCaut
Дата 9.5.2011, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



с функциями тоже разобрался юзаю  wchar_t *k = new wchar_t[n];
Спасиба за помощ.
PM MAIL   Вверх
volatile
Дата 10.5.2011, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 16
Всего: 85



Цитата(NOCaut @  9.5.2011,  23:39 Найти цитируемый пост)
 юзаю  wchar_t *k = new wchar_t[n];

Баг здесь затаился, один из самых  мерзких, потому-что скорей всего не выплывет при отладке.
место для нуля забыли.
Код

wchar_t *k = new wchar_t[n+1];

PM MAIL   Вверх
NOCaut
Дата 11.5.2011, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 5.12.2008

Репутация: нет
Всего: 0



Спасибо понял.
PM MAIL   Вверх
bsa
Дата 11.5.2011, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(NOCaut @  9.5.2011,  23:39 Найти цитируемый пост)
юзаю  wchar_t *k = new wchar_t[n];

А ты delete[] делать не забываешь?
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0698 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.