Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка записи в файл из RichEdit, Почему ошибка 
V
    Опции темы
Edik
Дата 26.11.2006, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



Я взял пример из книги- он работает, ошибки нету. Но сделав свою программу она у меня выдает ошибку:

RichEdit.cpp
D:\RichEdit\RichEdit.cpp(458) : error C2664: '_lwrite' : cannot convert parameter 2 from 'unsigned char *' to 'const char *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.

RichEdit.exe - 1 error(s), 0 warning(s)

Откуда ошибка, если код из книги компилируеться нормально, а мой не хочет?

Код

#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <richedit.h>
#include "resource.h"
#include "afxres.h"


LRESULT CALLBACK MyWndProc (HWND, UINT, WPARAM, LPARAM) ;
DWORD CALLBACK OpenCallback(DWORD, LPBYTE, LONG, LONG*);
DWORD CALLBACK SaveCallback(DWORD, LPBYTE, LONG, LONG*);
void FileOpen(HWND);
void FileSaveAs(HWND);


HINSTANCE hInstance;
HINSTANCE hInst;
HWND hRichEdit;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
     {
     static char  szAppName[] = "My" ;
     HWND         hwnd ;
     MSG          msg ;
     WNDCLASSEX   wndclass ;

     wndclass.cbSize        = sizeof (wndclass) ;
     wndclass.style         = CS_HREDRAW | CS_VREDRAW;
     wndclass.lpfnWndProc   = (WNDPROC)MyWndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = DLGWINDOWEXTRA ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (hInstance, MAKEINTRESOURCE(IDI_ICON1)) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = (HBRUSH) (COLOR_WINDOW) ;
     wndclass.lpszMenuName  = NULL ;
     wndclass.lpszClassName = szAppName ;
     wndclass.hIconSm       = LoadIcon (hInstance, MAKEINTRESOURCE(IDI_ICON1)) ;

     RegisterClassEx (&wndclass) ;

     hwnd=CreateDialog(hInstance, "My", 0, NULL);
     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow(hwnd);     
        
     InitCommonControls();
     hInst=hInstance;

     while (GetMessage (&msg, NULL, 0, 0))
          {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
          }
     return msg.wParam ;
     }



LRESULT CALLBACK MyWndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
     {

    HINSTANCE hLibrary;
    CHARFORMAT CharFormat;
    PARAFORMAT ParaFormat;
    HWND hRichEdit;
    CHOOSEFONT ChooseFontStructure;
    LOGFONT LogFont;
    HDC hDC;

    switch (iMsg)
          {
        case WM_CREATE :
    
            hLibrary=LoadLibrary("riched32.dll");

        return 0;


        case WM_PAINT:

        break;

        case WM_DESTROY :
        FreeLibrary(hLibrary);
        PostQuitMessage (0) ;
        return 0 ;
        
        case WM_COMMAND:


            if (LOWORD (wParam) == IDC_BUTTON1) 
            { 
                FreeLibrary(hLibrary);
                PostQuitMessage (0) ;
                return 0;
                break;
            }


            if (LOWORD (wParam) == IDC_BUTTON2) 
            { 
                hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);
                CharFormat.cbSize=sizeof(CHARFORMAT);
                CharFormat.dwMask=CFM_BOLD;
                SendMessage(hRichEdit, EM_GETCHARFORMAT, TRUE,
                    (LPARAM)&CharFormat);
                CharFormat.dwMask=CFM_BOLD;
                CharFormat.dwEffects^=CFE_BOLD;
                SendMessage(hRichEdit, EM_SETCHARFORMAT,
                    SCF_SELECTION,(LPARAM)&CharFormat);
                break;
            }

            
            if (LOWORD (wParam) == IDC_BUTTON3)
            {
                hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);
                CharFormat.cbSize=sizeof(CHARFORMAT);
                CharFormat.dwMask=CFM_ITALIC;
                SendMessage(hRichEdit, EM_GETCHARFORMAT, TRUE,
                    (LPARAM)&CharFormat);
                CharFormat.dwMask=CFM_ITALIC;
                CharFormat.dwEffects^=CFE_ITALIC;
                SendMessage(hRichEdit, EM_SETCHARFORMAT,
                    SCF_SELECTION,(LPARAM)&CharFormat);
                break;
            }

            if (LOWORD (wParam) == IDC_BUTTON4)
            {
                hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);
                CharFormat.cbSize=sizeof(CHARFORMAT);
                CharFormat.dwMask=CFM_UNDERLINE;
                SendMessage(hRichEdit, EM_GETCHARFORMAT, TRUE,
                    (LPARAM)&CharFormat);
                CharFormat.dwMask=CFM_UNDERLINE;
                CharFormat.dwEffects^=CFE_UNDERLINE;
                SendMessage(hRichEdit, EM_SETCHARFORMAT,
                    SCF_SELECTION,(LPARAM)&CharFormat);
                
                break;
            }

            if (LOWORD (wParam) == IDC_BUTTON5) 
            { 
                hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);
                CharFormat.cbSize=sizeof(CHARFORMAT);
                SendMessage(hRichEdit, EM_GETCHARFORMAT, TRUE,
                    (LPARAM)&CharFormat);
                memset(&ChooseFontStructure,0,sizeof(CHOOSEFONT));
                memset(&LogFont,0,sizeof(LOGFONT));
                hDC=GetDC(hwnd);
                LogFont.lfHeight=CharFormat.yHeight/-20;
                if(CharFormat.dwEffects&CFE_BOLD)
                    LogFont.lfWeight=FW_BOLD;
                else
                    LogFont.lfWeight=FW_NORMAL;
                LogFont.lfItalic=(BOOL)(CharFormat.dwEffects&CFE_ITALIC);
                LogFont.lfUnderline=(BOOL)(CharFormat.dwEffects&CFE_UNDERLINE);
                LogFont.lfCharSet=DEFAULT_CHARSET;
                LogFont.lfQuality=DEFAULT_QUALITY;
                LogFont.lfPitchAndFamily=CharFormat.bPitchAndFamily;
                lstrcpy(LogFont.lfFaceName,CharFormat.szFaceName);
                ChooseFontStructure.lStructSize=sizeof(ChooseFontStructure);
                ChooseFontStructure.hwndOwner=hwnd;
                ChooseFontStructure.hDC=hDC;
                ChooseFontStructure.lpLogFont=&LogFont;
                ChooseFontStructure.Flags=CF_SCREENFONTS|CF_INITTOLOGFONTSTRUCT;
                ChooseFontStructure.rgbColors=RGB(0,0,0);
                ChooseFontStructure.nFontType=SCREEN_FONTTYPE;
                if(ChooseFont(&ChooseFontStructure))
                {
                    CharFormat.dwMask=CFM_BOLD|CFM_FACE|CFM_ITALIC|CFM_OFFSET|CFM_SIZE|CFM_UNDERLINE;
                    CharFormat.yHeight=LogFont.lfHeight*-20;
                    CharFormat.dwEffects=0;
                    if(FW_BOLD==LogFont.lfWeight)
                        CharFormat.dwEffects|=CFE_BOLD;
                    if(LogFont.lfItalic)
                        CharFormat.dwEffects|=CFE_ITALIC;
                    if(LogFont.lfUnderline)
                        CharFormat.dwEffects|=CFE_UNDERLINE;
                    CharFormat.bPitchAndFamily=LogFont.lfPitchAndFamily;
                    lstrcpy(CharFormat.szFaceName,LogFont.lfFaceName);
                    SendMessage(hRichEdit,EM_SETCHARFORMAT,SCF_SELECTION,(LPARAM)&CharFormat);
                }
                ReleaseDC(hwnd,hDC);
                break;
            }
    
            if (LOWORD (wParam) == IDC_BUTTON6)
            {
                hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);
                ParaFormat.cbSize=sizeof(PARAFORMAT);
                ParaFormat.dwMask=PFM_ALIGNMENT;
                ParaFormat.wAlignment=PFA_LEFT;
                SendMessage(hRichEdit, EM_SETPARAFORMAT, 0,
                    (LPARAM)&ParaFormat);
                break;
            }

            if (LOWORD (wParam) == IDC_BUTTON7)
            {
                hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);
                ParaFormat.cbSize=sizeof(PARAFORMAT);
                ParaFormat.dwMask=PFM_ALIGNMENT;
                ParaFormat.wAlignment=PFA_RIGHT;
                SendMessage(hRichEdit, EM_SETPARAFORMAT, 0,
                    (LPARAM)&ParaFormat);
                break;
            }
            
            if (LOWORD (wParam) == IDC_BUTTON8)
            {
                hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);
                ParaFormat.cbSize=sizeof(PARAFORMAT);
                ParaFormat.dwMask=PFM_ALIGNMENT;
                ParaFormat.wAlignment=PFA_CENTER;
                SendMessage(hRichEdit, EM_SETPARAFORMAT, 0,
                    (LPARAM)&ParaFormat);
                break;
            }
            
            if (LOWORD (wParam) == IDC_BUTTON9)
            {
            hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);
            SendMessage(hRichEdit,EM_UNDO,0,0L);
            break;
            }
            
            if (LOWORD (wParam) == IDC_BUTTON10)
            {
            hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);
            SendMessage(hRichEdit,WM_CUT,0,0L);
            break;
            }
            
            if (LOWORD (wParam) == IDC_BUTTON11)
            {
            hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);
            SendMessage(hRichEdit,WM_COPY,0,0L);
            break;
            }

            if (LOWORD (wParam) == IDC_BUTTON12)
            {
            hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);
            SendMessage(hRichEdit,WM_PASTE,0,0L);
            break;
            }

            if (LOWORD (wParam) == IDC_BUTTON13)
            {
            hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);
            SendMessage(hRichEdit,WM_CLEAR,0,0L);
            break;
            }

            if (LOWORD (wParam) == IDC_BUTTON14)
            {
            CHARRANGE Charr;
            hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);
            Charr.cpMin=0;
            Charr.cpMax=-1;
            SendMessage(hRichEdit,EM_EXSETSEL,0,(LPARAM)&Charr);
            break;
            }

            if (LOWORD (wParam) == IDC_BUTTON15)
            {
            hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);
            SetWindowText(hRichEdit,"\0");
            break;
            }
            
            if (LOWORD (wParam) == IDC_BUTTON16)
            {
            FileOpen(hwnd);   // загружаем файл для редактирования
            return 0L;
            break;
            }

            if (LOWORD (wParam) == IDC_BUTTON17)
            {
            FileSaveAs(hwnd); // сохраняем текст в файле
            return 0L;
            break;
            }
            
            }
    return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
    
     }

void FileOpen(HWND hwnd)
{
  
  OPENFILENAME ofn;
  char szFile[256];
  char szDirName[256];
  char szFileTitle[256];
  char szFilter[256] = 
    "Rich Text Files\0*.rtf\0Text Files\0*.txt\0"
    "Any Files\0*.*\0";

  HFILE      hFile;
  OFSTRUCT   of;
  EDITSTREAM es;

  hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);

  memset(&ofn, 0, sizeof(OPENFILENAME));
  GetCurrentDirectory(sizeof(szDirName), szDirName);
  szFile[0] = '\0';

  // Подготавливаем структуру для выбора входного файла
  ofn.lStructSize     = sizeof(OPENFILENAME);
  ofn.hwndOwner       = hwnd;
  ofn.lpstrFilter     = szFilter;
  ofn.lpstrInitialDir = szDirName;
  ofn.nFilterIndex    = 1;
  ofn.lpstrFile       = szFile;
  ofn.nMaxFile        = sizeof(szFile);
  ofn.lpstrFileTitle  = szFileTitle;
  ofn.nMaxFileTitle   = sizeof(szFileTitle);
  ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

  // Выводим на экран диалоговую панель, предназначенную
  // для выбора входного файла
  if(GetOpenFileName(&ofn))
  {
    // Если файл выбран, открываем его для чтения
    if (*ofn.lpstrFile)
    {
      hFile = OpenFile(ofn.lpstrFile, &of, OF_READ);
      
      // Устанавливаем параметры функции обратного вызова,
      // которая будет выполнять чтение
      es.dwCookie    = (DWORD)hFile; 
      es.dwError     = 0; 
      es.pfnCallback = OpenCallback; 

      // Если расширение файла rtf, файл загружается как
      // rtf-файл. В противном случае он загружается как
      // обычный текстовый файл
      _strupr(&ofn.lpstrFile[ofn.nFileExtension]); 
      if(!strncmp(&ofn.lpstrFile[ofn.nFileExtension], "RTF", 3))
        SendMessage(hRichEdit, EM_STREAMIN, SF_RTF, (LPARAM)&es);
      else
        SendMessage(hRichEdit, EM_STREAMIN, SF_TEXT, (LPARAM)&es);

      // Закрываем файл
      _lclose(hFile);

      // Сбрасываем признак изменения содержимого окна
      // редактора текста
      SendMessage(hRichEdit, EM_SETMODIFY, FALSE, 0L);
    }
  }
}

// -----------------------------------------------------
// Функция OpenCallback
// -----------------------------------------------------
DWORD CALLBACK 
OpenCallback(DWORD dwCookie, LPBYTE   pbBuff,
  LONG cb, LONG *pcb)
{
  // Выполняем чтение блока данных длиной cb байт
  *pcb = _lread((HFILE)dwCookie, pbBuff, cb);
  if(*pcb <= 0)
    *pcb = 0;
  return 0;
}

void FileSaveAs(HWND hwnd)
{

  OPENFILENAME ofn;
  char szFile[256] = "untitled.rtf";
  char szDirName[512];
  char szFileTitle[256];
  
  // Фильтр допускает сохранение текста в файле с
  // расширением имени rtf, txt, или любым другим
  char szFilter[256] = 
    "Rich Text Files\0*.rtf\0Text Files\0*.txt\0"
    "Any Files\0*.*\0";

  HFILE      hFile;
  OFSTRUCT   of;
  EDITSTREAM es;

  hRichEdit=GetDlgItem(hwnd,IDC_RICHEDIT1);

  memset(&ofn, 0, sizeof(OPENFILENAME));
    
  // Определяем путь к текущему каталогу
  GetCurrentDirectory(sizeof(szDirName), szDirName);
  
  // Заполняем структуру для выбора выходного файла
  ofn.lStructSize     = sizeof(OPENFILENAME);
  ofn.hwndOwner       = hwnd;
  ofn.lpstrFilter     = szFilter;
  ofn.lpstrInitialDir = szDirName;
  ofn.nFilterIndex    = 1;
  ofn.lpstrFile       = szFile;
  ofn.nMaxFile        = sizeof(szFile);
  ofn.lpstrFileTitle  = szFileTitle;
  ofn.nMaxFileTitle   = sizeof(szFileTitle);
  ofn.lpstrDefExt = "rtf";
  ofn.Flags = OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY;

  // Выводим на экран диалоговую панель, предназначенную
  // для выбора выходного файла
  if(GetSaveFileName(&ofn))
  {
    // Если файл выбран, открываем его для записи или
    // создаем
    if (*ofn.lpstrFile)
    {
      hFile = OpenFile(ofn.lpstrFile, &of, OF_CREATE);

      // Устанавливаем параметры функции обратного вызова,
      // которая будет выполнять запись
      es.dwCookie    = (DWORD)hFile; 
      es.dwError     = 0; 
      es.pfnCallback = SaveCallback; 
            
      // Если расширение файла rtf, файл сохраняется как
      // rtf-файл. В противном случае он сохраняется как
      // обычный текстовый файл
      _strupr(&ofn.lpstrFile[ofn.nFileExtension]); 
   
      if(!strncmp(&ofn.lpstrFile[ofn.nFileExtension], "RTF", 3))
         SendMessage(hRichEdit, EM_STREAMOUT, SF_RTF, (LPARAM)&es);
      else
         SendMessage(hRichEdit, EM_STREAMOUT, SF_TEXT, (LPARAM)&es);

      // Закрываем файл
      _lclose(hFile);

      // Сбрасываем признак изменения содержимого окна
      // редактора текста
      SendMessage(hRichEdit, EM_SETMODIFY, FALSE, 0L);
    }
  }
}

// -----------------------------------------------------
// Функция SaveCallback
// -----------------------------------------------------
DWORD CALLBACK 
SaveCallback(DWORD dwCookie, LPBYTE   pbBuff,
  LONG cb, LONG *pcb)
{
  // Выполняем запись блока данных длиной cb байт
  cb = _lwrite((HFILE)dwCookie, pbBuff, cb);
  *pcb = cb;
  return 0;
}

PM MAIL   Вверх
Любитель
Дата 27.11.2006, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 1
Всего: 92



Ну дык поставь приведение. То бишь (LPCTSTR)pbuf или reinterpret_cast<LPCTSTR>(pbuf).


--------------------
PM MAIL ICQ Skype   Вверх
Edik
Дата 27.11.2006, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



О! получилось- но зачем такие сложности?!
PM MAIL   Вверх
Любитель
Дата 28.11.2006, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 1
Всего: 92



Всмысле?


--------------------
PM MAIL ICQ Skype   Вверх
rsm
Дата 28.11.2006, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Edik @  27.11.2006,  21:06 Найти цитируемый пост)
 но зачем такие сложности?!
Потому что для чистого WinAPI идеален Си, в котором не настолько параноидальный контроль типов как в С++. Но многие порываются писать программы с WinAPI именно на С++ - отсюда и ультра-геморрой с постоянным приведением типов.
PM MAIL   Вверх
Edik
Дата 28.11.2006, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



а вобще ты прав та програма с книги написала на си, а я пишу на си++ winapi- так это только из за этих проблем такие сложности приведения типа, что мол моя на си++ требует приведения типа, а на си не требует. но файлы програмные же не отличаються, только у моей расширение срр а у той с книги просто расширение буква с. именно как компилятор распознает что это си программа а не си++? вот что я хотел теперь спросить. спасибо за ответ.
PM MAIL   Вверх
rsm
Дата 28.11.2006, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Edik @  28.11.2006,  21:51 Найти цитируемый пост)
именно как компилятор распознает что это си программа а не си++?
Да, язык распознается по расширению файла исходника. Кроме того, можно указать компилятору VC++ спец-ключ (/TP или /TC насколько мне помнится), чтобы он поддерживал только чистый Си и пресекал все попытки использования С++.
Ну или еще как вариант можно установить мою любимую IDE Pellec C for Windows, которая ничего кроме чистого Си попросту не поддерживает.
PM MAIL   Вверх
Edik
Дата 29.11.2006, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



слушай, а что такое теперь (LPCTSTR) - я понимаю что это приведение типов, и часто встречаю это (LPCTSTR) но что оно обозначает я не знаю. объясни пожалуйста. типа какой то лонг поинтер на стринг но что еще такое в нем буквы CT? и чего именно приводить к типу (LPCTSTR)?
PM MAIL   Вверх
Earnest
Дата 29.11.2006, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 33
Всего: 183



typedef const TCHAR *LPCTSTR;

т.е. указатель на константную строку TCHAR


--------------------
...
PM   Вверх
rsm
Дата 29.11.2006, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Edik @  29.11.2006,  13:30 Найти цитируемый пост)
что еще такое в нем буквы CT
Указание на то что строка неизменяема (const).
PM MAIL   Вверх
Любитель
Дата 30.11.2006, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 1
Всего: 92



T - что символ TCHAR, т. е. раскрывается в анси или юникод.


--------------------
PM MAIL ICQ Skype   Вверх
Edik
Дата 30.11.2006, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



а чего мы именно к LPCTSTR приводим а не к чему то другому?
PM MAIL   Вверх
Любитель
Дата 3.12.2006, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 1
Всего: 92



Потому что именно такой тип нужен для _lwrite.


--------------------
PM MAIL ICQ Skype   Вверх
Edik
Дата 7.12.2006, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



спасибо всем!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

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


 




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


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

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