once again illegal operation
Code:
#include <windows.h>
HWND button;
HWND editbx1;
HWND editbx2;
int cpyfile();
const char g_szClassName[] = "mywindowclass";
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_COMMAND:
if(LOWORD(wParam) == BN_CLICKED && (HWND)lParam == button){
cpyfile();
}
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX wc;
HWND hwnd;
MSG Msg;
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+5);
wc.lpszMenuName = NULL;
wc.lpszClassName = g_szClassName;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if(!RegisterClassEx(&wc))
{
MessageBox(NULL, "Cannot register window","Error creating window", MB_OK);
return 0;
}
hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,g_szClassName, "Parse string",WS_OVERLAPPEDWINDOW, 150,40,400,500,NULL,NULL, hInstance,NULL);
button = CreateWindow("Button","name",WS_CHILD | WS_VISIBLE,150,50,100,40,hwnd,NULL,hInstance,NULL);
editbx1 = CreateWindow("Edit","Enter File here", WS_CHILD | WS_VISIBLE |WS_BORDER,120,150,240,40,hwnd,NULL,hInstance,NULL);
editbx2 = CreateWindow("Edit","Enter destination here", WS_CHILD | WS_VISIBLE| WS_BORDER,120,200,240,40,hwnd,NULL,hInstance,NULL);
if(hwnd == NULL)
{
MessageBox(NULL, "Something is screwed up!", "ERROR", MB_OK);
return 0;
}
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&Msg, NULL, 0,0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
int cpyfile()
{
BOOL valofcpyfile;
int len = GetWindowTextLength(editbx1);
TCHAR *pcbuf = new TCHAR[len + 1];
GetWindowText(editbx1, pcbuf,len);
int len2 = GetWindowTextLength(editbx2);
TCHAR *buf = new TCHAR[len2 + 1];
GetWindowText(editbx2, buf,len2);
valofcpyfile = CopyFile(pcbuf,buf,FALSE);
if(valofcpyfile==0){
MessageBox(NULL,"Error","Error",MB_OK);
}
delete [] pcbuf;
delete [] buf;
return 0;
}
Well this time in this illegal operation I ge thte error before the program even starts. I've looked this code over countless times and can't find the problem:mad: