No title

1 ngày tự nhiên nhớ ra là lâu lắm ko viết.🙂 cảm giác dạo này rùa không được may mắn. Mọi thứ cứ hỏng hoài a. Heo thương con rùa😦. Có rất nhiều thứ không muốn vẫn đến với mình hằng ngày nhưng heo vẫn luôn tin với rùa mọi thứ bất ổn đều sẽ ổn.🙂 vì nếu là heo thì chắc đã rối bung từ lâu ùi. Zị nên rùa siêu hơn heo a :)).

Hum nay cũng nhớ ra. Heo quay nhắc rùa lười na. Lười lắm ùi đó na. Không chịu viết bài vào đây gì na.😦

 

Câu chuyện ngớ ngẩn từ webcam sex

Hôm qua, tôi tình cờ lướt qua trang cá nhân của anh bạn tôi, thật tình cờ để nghĩ rằng anh ấy sẽ là nhân vật chính với tính cách ấy. Bạn biết không đây là kiểu tống tiền khó đỡ lắm đấy đặc biệt là các thanh niên mới lớn…

ping…! 1 tin nhắn từ facebook tít lên, như mọi lần James liền kiểm tra ngay, James không phải người có nhiều bạn vì vậy những lần như thế hẳn sẽ rất hào hứng ngóng trong, và lần này từ danh sách đổ xuống có 1 cô bé trông rất xinh gửi lời mời kết bạn, James liền chấp nhận ngay. Em ấy để cái avatar xinh cực james không kìm được lòng và nhắn tin ngay nhưng nào ngờ cô ấy đã chủ động nhắn trước cả James. Ố ồ bất ngờ nhỉ, James nghỉ bụng chà món quà từ Chúa. Em nói chuyện rất dễ thương, “Chào anh! Em là Isabella, em nhìn thấy ảnh của anh trên Facebook và em thích anh á.”. Nghe xong, James khoái chí trả lời “Ủa vậy à, hihi em ở đâu”,”Em ở NewYork, Em đang làm sinh viên ở nhà 1 mình buồn quá, nên kiếm ai nói chuyện thì tình cờ gặp được anh”. James ở nhà cũng buồn lắm, vợ anh ấy đi công tác ở nước ngoài, hẳn đây là cơ hội tốt, anh trả lời “thế em thích gì”. “em thích tình dục ạ”.Câu trả lời làm anh bất ngờ quá, trong đầu hiện ra 1 con đường màu mở rồi đấy, một cô gái lại chủ động lúc anh đang buồn chán.”thật à! thế giờ em muốn như thế nào”, cô ấy trả lời “anh bật webcam lên 2 chúng ta nói chuyện”. James hỏi ngay.”anh có thể thấy em chứ”. “vâng!”. Rồi James bật webcam lên và cô ấy cũng. Chà bên kia là 1 cô bé dễ thương vô cùng làm anh chàng xao xuyên run rẩy. Cô bé nhắn tin tiếp,”Tụi mình thủ dâm với nhau nhé.”, James khoái chí chấp nhận ngay ha ha. Không chấp nhận mới lạ. Chưa đầy 1 phút cô bé đã lột sạch quần áo trên người và mân mê làm james càng thích thú với trò này. James có vẻ làm rất thạo, anh vuốt ve mê mẫn theo từng đường cong của cô bé làm theo.Cô bé hoi”anh làm ở châu âu à, chắc anh phải có thu nhập cao lắm nhỉ,”. James trả lời khoái chí,”hihi, sao em biết!”.Bỗng nhiên, Cô bé dừng lại nhắn tin,” có người đến mình nói sau nhé”,vừa nói vừa mặc quần áo vào. Anh james của ta vẫn đang thẩn thờ 1 lúc rồi cũng kết thúc cuộc vui theo. Cuối ngày hôm đó trên facebook anh nhận được 1 tin nhắn. Chào anh bạn, tôi có 1 đoạn video nhạy cảm của anh, Có vẻ anh đang vui vẻ trong tư thế adam rất nhiệt tình. Anh có muốn xem không”. Từ trong khung chát hiện ngay hình của james đang trần truồng, anh nóng cả người rồi run rẩy nhắn tin, Thì ra cuộc vui lúc sáng mang lại cho mình món quà này đây. Bên kia nhắn tiếp. “Nếu anh không gửi cho tôi 2000 Euro thì anh biết đấy, Facebook sẽ có rất nhiều bạn bè anh được xem phim miễn phí! ái chà mẹ anh trông thật hiền lành và phúc hậu nhỉ, Tôi không nghỉ bà ấy cũng lên facebook thường xuyên đấy.” James bắt đầu choáng, cảm giác sợ như nuốt chửng anh rồi, Tôi gửi! tôi gửi, Nhưng có chắc là anh sẽ xóa video đó không. “Tất nhiên, Nếu tiền chuyển đến đúng hẹn, mọi thứ sẽ kết thúc trong im lặng.”…Tương lại thật u  ám với james, Anh đang lo sợ không biết gửi tiền xong nó có xóa không hay nó lại uy hiếp tiếp.=))

Này thì các thanh niên hiếu chiến với súng đạn nhé. Hãy cẩn thận nhé hãy bình luận cách giải quyết giúp james nào….

list file in folder c++

/* Returns a list of files in a directory (except the ones that begin with a dot) */

void GetFilesInDirectory(std::vector<string> &out, const string &directory)
{
#ifdef WINDOWS
    HANDLE dir;
    WIN32_FIND_DATA file_data;

    if ((dir = FindFirstFile((directory + "/*").c_str(), &file_data)) == INVALID_HANDLE_VALUE)
        return; /* No files found */

    do {
        const string file_name = file_data.cFileName;
        const string full_file_name = directory + "/" + file_name;
        const bool is_directory = (file_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0;

        if (file_name[0] == '.')
            continue;

        if (is_directory)
            continue;

        out.push_back(full_file_name);
    } while (FindNextFile(dir, &file_data));

    FindClose(dir);
#else
    DIR *dir;
    class dirent *ent;
    class stat st;

    dir = opendir(directory);
    while ((ent = readdir(dir)) != NULL) {
        const string file_name = ent->d_name;
        const string full_file_name = directory + "/" + file_name;

        if (file_name[0] == '.')
            continue;

        if (stat(full_file_name.c_str(), &st) == -1)
            continue;

        const bool is_directory = (st.st_mode & S_IFDIR) != 0;

        if (is_directory)
            continue;

        out.push_back(full_file_name);
    }
    closedir(dir);
#endif
} // GetFilesInDirectory

folder selecting

#include <windows.h>
#include <string>
#include <shlobj.h>
#include <iostream>
#include <sstream>

static int CALLBACK BrowseCallbackProc(HWND hwnd,UINT uMsg, LPARAM lParam, LPARAM lpData)
{

    if(uMsg == BFFM_INITIALIZED)
    {
        std::string tmp = (const char *) lpData;
        std::cout << "path: " << tmp << std::endl;
        SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData);
    }

    return 0;
}

std::string BrowseFolder(std::string saved_path)
{
    TCHAR path[MAX_PATH];

    const char * path_param = saved_path.c_str();

    BROWSEINFO bi = { 0 };
    bi.lpszTitle  = ("Browse for folder...");
    bi.ulFlags    = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE;
    bi.lpfn       = BrowseCallbackProc;
    bi.lParam     = (LPARAM) path_param;

    LPITEMIDLIST pidl = SHBrowseForFolder ( &bi );

    if ( pidl != 0 )
    {
        //get the name of the folder and put it in path
        SHGetPathFromIDList ( pidl, path );

        //free memory used
        IMalloc * imalloc = 0;
        if ( SUCCEEDED( SHGetMalloc ( &imalloc )) )
        {
            imalloc->Free ( pidl );
            imalloc->Release ( );
        }

        return path;
    }

    return "";
}

int main(int argc, const char *argv[])
{
    std::string path = BrowseFolder(argv[1]);
    std::cout << path << std::endl;
    return 0;
}

The Common File Dialogs

The first step to opening or saving files is finding out the filename to use… of course you could always hard code the name of the file into your program, but honestly that doesn’t make for very useful programs most of the time.

Since this is such a common task, there are predefined system dialogs that you can use to allow the user to select a file name. The most common open and save file dialogs are accessed through GetOpenFileName() andGetSaveFileName() respectively, both of which take an OPENFILENAME struct.

    OPENFILENAME ofn;
    char szFileName[MAX_PATH] = "";

    ZeroMemory(&ofn, sizeof(ofn));

    ofn.lStructSize = sizeof(ofn); // SEE NOTE BELOW
    ofn.hwndOwner = hwnd;
    ofn.lpstrFilter = "Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0";
    ofn.lpstrFile = szFileName;
    ofn.nMaxFile = MAX_PATH;
    ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
    ofn.lpstrDefExt = "txt";

    if(GetOpenFileName(&ofn))
    {
        // Do something usefull with the filename stored in szFileName 
    }

Note that we call ZeroMemory() on the struct in order to initialise it to 0. This is generally a wise practice, as some APIs are very picky about members that you don’t use being set to NULL. This way you don’t need to explicitely set each member that you don’t use.

You can easily find out the meanings of the various members by looking them up in your documentation. The lpstrFilter value points to a double-NULL terminated string, and you can see from the example that there are several "\0" throughout it, including one at the end… the compiler will add the second one at the end as it always does with string constants (that’s what you generally don’t need to put them in yourself). The NULLs in this string break it up into filters, each one is two parts. The first filter has the description "Text Files (*.txt)", the wildcard isn’t required here I just put it in because I felt like it. The next part is the actual wildcard for the first filter, "*.txt". We do the same thing with the second filter except that this is a generic filter for all files. You can add as many different filters as you’d like.

The lpstrFile points to the buffer we have allocated to store the name of the file, since filenames can’t be larger than MAX_PATH this is the value that I’ve chosen for the buffer size.

The flags indicate that the dialog should only allow the user to enter filenames that already exist (since we want to open them, not create them) and to hide the option to open the file in readonly mode, which we aren’t going to support. Finally we provide a default extention, so if the user types in "foo" and the file is not found, it will try to open "foo.txt" before finally giving up.

To select a file for saving instead of opening, the code is nearly the same, except for calling GetSaveFileName() we need only change the flags member to options more suitable for saving.

    ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;

In this case we no longer want to require the file exist, but we do want the directory to exist since we aren’t going to try and create it first. We’ll also prompt the user if they select an existing file to make sure they want to overwrite it.

NOTE: MSDN States the following for the lStructSize member:

lStructSize
Specifies the length, in bytes, of the structure.Windows NT 4.0: In an application that is compiled with WINVER and _WIN32_WINNT >= 0x0500, use OPENFILENAME_SIZE_VERSION_400 for this member.

Windows 2000/XP: Use sizeof (OPENFILENAME) for this parameter.

Basically what this means is that as of Windows 2000 they added some members to this struct, and so it’s size changed. If the code above doesn’t work for you it’s possibly because the size that your compiler used and the size that your operating system (ie. Windows 98, Windows NT4) expected were different and so the call failed. If this happens, try using OPENFILENAME_SIZE_VERSION_400 instead of sizeof(ofn). Thanks to people that pointed this out to me.

Reading and Writing Files

In windows you have a few options as to how you want to access files. You can use the old io.h open()/read()/write(), you can use stdio.hfopen()/fread()/fwrite(), and if you are in C++ use can use iostreams.

However in windows all of these method ultimately call the Win32 API functions, which are what I will use here. If you are already comfortable using file IO with another method it should be fairly easy to pick up, or if you want simply use your method of choice to access files.

To open files, you can use OpenFile() or CreateFile(). MS recommends using only CreateFile() as OpenFile() is now “obsolete”. CreateFile() is a much more versatile function and provides a great deal of control over the way you open files.

Reading

Say for example you have allowed the user to select a file using GetOpenFileName()…

BOOL LoadTextFileToEdit(HWND hEdit, LPCTSTR pszFileName)
{
    HANDLE hFile;
    BOOL bSuccess = FALSE;

    hFile = CreateFile(pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
        OPEN_EXISTING, 0, NULL);
    if(hFile != INVALID_HANDLE_VALUE)
    {
        DWORD dwFileSize;

        dwFileSize = GetFileSize(hFile, NULL);
        if(dwFileSize != 0xFFFFFFFF)
        {
            LPSTR pszFileText;

            pszFileText = GlobalAlloc(GPTR, dwFileSize + 1);
            if(pszFileText != NULL)
            {
                DWORD dwRead;

                if(ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL))
                {
                    pszFileText[dwFileSize] = 0; // Add null terminator
                    if(SetWindowText(hEdit, pszFileText))
                        bSuccess = TRUE; // It worked!
                }
                GlobalFree(pszFileText);
            }
        }
        CloseHandle(hFile);
    }
    return bSuccess;
}

There is a complete function to read a text file into an edit control. It takes as paramters the handle to the edit control and the name of the file to read in. This perticular function has a fair bit of error checking, file IO is one place where a lot of things can go wrong, and so you need to be on the lookout for errors.

Note the variable dwRead. We don’t use it except as a paramter in ReadFile(). This parameter MUST be provided, the call will fail without it.

In the call to CreateFile() GENERIC_READ means we only want read access. FILE_SHARE_READ means it’s okay if other programs open the file at the same time we do, but ONLY if they want to read as well, we don’t want them writing to the file while we are reading it. And OPEN_EXISTING means only open the file if it already exists, don’t create it, and don’t overwrite it.

Once we’ve opened the file and chacked to see that CreateFile() succeeded, we check the size of the file so we’ll know how much memory we need to allocate in order to read the entire thing. We then allocate the memory, check to make sure the allocation succeeded, and then call ReadFile() to load the contents from disk into our memory buffer. The API file functions have no concept of Text Files so they won’t do things like read a single line of text, or add NULL terminators to the end of our strings. This is why we’ve allocated an extra byte and after we read in the file we add the NULL ourselves so that we can then pass the memory buffer as a string to SetWindowText().

Once all that has succeeded we set out success variable to TRUE, and clean up as we reach the end of the function, freeing the memory buffer and closing the file handle before finally returning to the caller.

Writing

BOOL SaveTextFileFromEdit(HWND hEdit, LPCTSTR pszFileName)
{
    HANDLE hFile;
    BOOL bSuccess = FALSE;

    hFile = CreateFile(pszFileName, GENERIC_WRITE, 0, NULL,
        CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    if(hFile != INVALID_HANDLE_VALUE)
    {
        DWORD dwTextLength;

        dwTextLength = GetWindowTextLength(hEdit);
        // No need to bother if there's no text.
        if(dwTextLength > 0)
        {
            LPSTR pszText;
            DWORD dwBufferSize = dwTextLength + 1;

            pszText = GlobalAlloc(GPTR, dwBufferSize);
            if(pszText != NULL)
            {
                if(GetWindowText(hEdit, pszText, dwBufferSize))
                {
                    DWORD dwWritten;

                    if(WriteFile(hFile, pszText, dwTextLength, &dwWritten, NULL))
                        bSuccess = TRUE;
                }
                GlobalFree(pszText);
            }
        }
        CloseHandle(hFile);
    }
    return bSuccess;
}

Very similar to reading files, the function to write files has a few changes. First of all when we call CreateFile() we specify that we want Read access, that the file should always be created new (and if it exists it will be erased as it’s opened) and that if it doesn’t exist, it will be created with the normal file attributes.

Next we get the length of the memory buffer needed from the edit control, since this is the source of the data. Once we’ve allocated the memory, we request the string from the edit control using GetWindowText() and then write it to the file with WriteFile(). Again, like with ReadFile() the parameter that returns how much was actually written is required, even though we don’t use it.

http://www.winprog.org/tutorial/app_two.html

A simple GetOpenFileName example

  1. #include "stdafx.h"
  2. #include <windows.h>
  3. #include "resource.h"
  4. #include <Commdlg.h>
  5. //
  6. // Gobal Variables and declarations.
  7. //
  8. OPENFILENAME ofn ;
  9. // a another memory buffer to contain the file name
  10. char szFile[100] ;
  11. int WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevInstance , LPSTR lpCmdLine , int nCmdShow )
  12. {
  13. // open a file name
  14. ZeroMemory( &ofn , sizeof( ofn));
  15. ofn.lStructSize = sizeof ( ofn );
  16. ofn.hwndOwner = NULL ;
  17. ofn.lpstrFile = szFile ;
  18. ofn.lpstrFile[0] = '\0';
  19. ofn.nMaxFile = sizeof( szFile );
  20. ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0";
  21. ofn.nFilterIndex =1;
  22. ofn.lpstrFileTitle = NULL ;
  23. ofn.nMaxFileTitle = 0 ;
  24. ofn.lpstrInitialDir=NULL ;
  25. ofn.Flags = OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST ;
  26. GetOpenFileName( &ofn );
  27. // Now simpley display the file name
  28. MessageBox ( NULL , ofn.lpstrFile , "File Name" , MB_OK);
  29. return 0;
  30. }

create a modal dialog box using win32 APIs

#include <windows.h>
 

BITMAP   bmp;
 

void PaintBkBitmap(HWND hWndDlg) {
 

    HDC      hdc, hMemDC;
 

    PAINTSTRUCT ps;

    HGDIOBJ hOld;
 

    RECT rc;
 

    GetClientRect(hWndDlg,&rc);
 

    hdc = BeginPaint(hWndDlg,&ps);
 
 

    hMemDC = CreateCompatibleDC(hdc);
 

    hOld = SelectObject(hMemDC,hBitmap);
 

    BOOL bRet = BitBlt(hdc,rc.right - 50 - 200,10,200,87,hMemDC,0,0,SRCAND);
 

    SelectObject(hMemDC,hOld);

    DeleteDC(hMemDC);

    ReleaseDC(hWndDlg,hdc);

    EndPaint(hWndDlg,&ps);

}
 
 
 

LRESULT CALLBACK DlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
 

int APIENTRY WinMain(HINSTANCE hInstance,

                     HINSTANCE hPrevInstance,

                     LPTSTR    lpCmdLine,

                     int       nCmdShow)

{

    UNREFERENCED_PARAMETER(hPrevInstance);

    UNREFERENCED_PARAMETER(lpCmdLine);
 

    hInst = hInstance;
 

    int nRet = (int)DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG),0,(DLGPROC) DlgProc);
 

    if (-1 == nRet)

    {

      return FALSE;

    }
 

    return 0;

}
 
 
 

BOOL       DlgCmd   (   HWND    hwndDlg,        // handle to dialog box

                        UINT    uMsg,           // message

                        WPARAM  wParam,         // first message parameter

                        LPARAM  lParam          // second message parameter

                    ) {
 

    WORD    wNotifyCode;

    WORD    wID;

    HWND    hwndCtl;
 

    wNotifyCode =   HIWORD(wParam); // notification code 

    wID         =   LOWORD(wParam); // item, control, or accelerator identifier 

    hwndCtl     =   (HWND) lParam;  // handle of control 
 

    if  (BN_CLICKED ==  wNotifyCode) {  //  nothing else will happen...

    

            switch(wID){
 

                case    IDC_OK:
 

                            return DlgOK(hwndDlg);

                            break;
 

                case    IDC_CANCEL:
 

                            EndDialog(hwndDlg,IDOK);

                            break;
 

            }

        }

                                        

    return( TRUE);

}
 

BOOL DlgOK(HWND hwndDlg) {
 

    return TRUE;

}
 

BOOL DlgInit(HWND hwndDlg) {
 

    hBitmap = LoadBitmap(hInst,MAKEINTRESOURCE(IDB_BITMAP));
 

    int nRet = GetObject(hBitmap, sizeof(BITMAP), (LPVOID)&bmp);

 

    return TRUE;

}
 

LRESULT CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
 

     switch (uMsg) {
 

                case    WM_INITDIALOG:  return  (   DlgInit   (   hwndDlg));
 

                case    WM_COMMAND:     return  (   DlgCmd    (   hwndDlg,

                                                                        uMsg,

                                                                        wParam,

                                                                        lParam

                                                                    )

                                                );  
 

                case    WM_PAINT:       PaintBkBitmap( hwndDlg);
 

            };
 

    return FALSE;

}

Select all

A Free Day

Loading … loading … and loading😦. The internet has some problems. haizz. Long time until now, I have a day… free day. Actually I don’t know how should I do now. Recently, turtle is quiet busy … I can’t understand what is he doing ??? @@ before I enter this site I had a lot of things in my head but … when I see the screen, it’s seem disappear. A🙂 now, I just think I am not a gentle girl, I’m a shrewd maybe ??? :)) I don’t know all above sentence, how many true sentences or fall but you get my thinkings, right ? Hic you must because you obligated me write by english😉 A day for silly thoughts

Goodnight Turtle