7월, 2022의 게시물 표시

[MFC] List control 예제

이미지
리스트 컨트롤 예제. 거의 기능 다 있어서 요긴하게 사용 가능.  (InsertItem/ SetItem) 1. 실행 화면 2. 예제 header----------------------------------------------------------------------------------------------- // MFCApplication3Dlg.h: 헤더 파일 // #pragma once // CMFCApplication3Dlg 대화 상자 class CMFCApplication3Dlg : public CDialogEx { // 생성입니다. public: CMFCApplication3Dlg(CWnd* pParent = nullptr); // 표준 생성자입니다. // 대화 상자 데이터입니다. #ifdef AFX_DESIGN_TIME enum { IDD = IDD_MFCAPPLICATION3_DIALOG }; #endif protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원입니다. // 구현입니다. protected: HICON m_hIcon; // 생성된 메시지 맵 함수 virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); DECLARE_MESSAGE_MAP() public: CListCtrl m_List; afx_msg void OnBnClickedButtonADD(); CString m_strName; CString m_strAge; afx_msg void OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult); afx_msg void OnCustomdrawList(NMHDR* pNMH

[C++] FTP 파일 찾기 예제 (FtpFindFirstFile)

1.  FtpFindFirstFile 함수 선언 HINTERNET FtpFindFirstFile( IN HINTERNET hFtpSession, IN LPCTSTR FileName OPTIONAL, IN LPWIN32_FIND_DATA FindData, IN DWORD Flags, IN DWORD Context); 2. 예제 void EnumFtpFiles() { HINTERNET hInternet; HINTERNET hFtpSession; HINTERNET hFind; WIN32_FIND_DATA fd; hInternet = InternetOpen( "WININET Sample Program", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); //Ftp Connect 부분 핸들은 HINTERNET 이다. hFtpSession = InternetConnect( hInternet, "ftp.foo.bar", INTERNET_DEFAULT_FTP_PORT, NULL, NULL, INTERNET_SERVICE_FTP, 0, 0); hFind = FtpFindFirstFile(hFtpSession, "pub/Misc/", &fd, 0, 0); if(hFind != NULL) do { printf("%s\n", fd.cFileName); //출력 해도 되고 Delete 해도 됨. } while(InternetFindNextFile(hFind, &fd)); //다음 파일로 넘겨서 다 찾을때 까지 반복. InternetCloseHandle(hFind); //핸들은 꼭 닫아주자 누수 확인 할것. InternetCloseHandle(hFtpSession); InternetCloseHandle(hInternet); } 출처 : < http://n

[C++] FTP Timeout 설정 법 예제 (InternetSetOption)

FTP 연결, D ata 보낼 때, Data 수취 할 때 등 TimeOut 설정이 가능함. TimeOut이 가끔 안되는 버그가 있다고 함. 그럴 때는 Thread 에서 감시하는 함수를 만들어서 감시 해주면 됨. ​ 1. 함수 원형 BOOL InternetSetOption ( IN HINTERNET hInternet OPTIONAL,      //Ftp Internet 핸들(Internet 핸들 임) IN DWORD Option,     //Time Out Define 적어주면 됨.(Time Out 종류) IN LPVOID Buf,     //Time Out Buffer IN DWORD BufSize);     //Time Out Buffer Size } ​ 2. InternetSetOption 함수 인자 값. DWORD ms = 1000; InternetSetOption (hInternet, INTERNET_OPTION_CONNECT_TIMEOUT, &ms, sizeof(ms)); // InternetSetOption 함수가 타임아웃뿐만 아니라 다른 기능도 많다. 찾아 보시길.(지원 안되는 기능과 버그가 많긴 함.) ​ 3. 예제 void TestInternetOption() { HINTERNET hInternet; HINTERNET hFile; char Buf[1000]; DWORD ReadSize; BOOL bResult; DWORD ms; hInternet = InternetOpen( "WININET Sample Program", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); if(hInternet == NULL) printf("InternetOpen err(%d)\n", GetLastError()); else printf("InternetOpen

[C++] FTP 구현 예제 업로드 다운로드(SImple Ftp Class)

Ftp 구현 하라고 하면 사용하면 되는 Class다. Ftp 에서 할 수있는 기능이 거의 대부분 구현되어 있다.(Ftp Upload & Download) 다운로드 :  Simple ftp 다운(클릭) 아래는 헤더 파일 함수. //로그인      BOOL   Login ( CString   strIP ,   CString   strID = _T ( "anonymous" ) ,   CString   strPasswd = _T ( "" ) ,           UINT   nPort   =   INTERNET_DEFAULT_FTP_PORT ,   HWND   hCallWnd   =   NULL ,   BOOL   bUtf8   =   TRUE ,   BOOL   bPassive   =   FALSE ) ;      //로그아웃      void   LogOut ( ) ;      //FTP서버에 연결되어있으면 TRUE, 아니면 FALSE      BOOL   IsConnected ( ) ;      //파일만 다운로드      BOOL   DownloadFile ( CString   strRemoteFilePath ,   CString   strLocalFilePath ,   BOOL   bResume   =   FALSE ) ;      //하위 디렉토리까지 포함하여 다운로드      BOOL   DownloadWithSubDir ( CString   strRemoteDir ,   CString   strLocalDir ,   BOOL   bResume   =   FALSE ) ;      //파일만 업로드      BOOL   UploadFile ( CString   strLocalFilePath ,   CString   strRemoteFilePath ,   BOOL   bResume   =   FALSE ) ;      //하위 디렉토리 포함 업로드      BOOL   UploadWithSubDir ( CStrin