“无法打开输出文件filename.exe:权限被拒绝". [英] "cannot open output file filename.exe: Permission denied"

查看:695
本文介绍了“无法打开输出文件filename.exe:权限被拒绝".的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚学过C ++,我正在尝试使用windows.h标头制作一个程序.我正在使用Dev-C ++编译器,但遇到三个错误,找不到解决方法.

I have just learned C++ and I am trying to make a program using the windows.h header. I am using the Dev-C++ compiler and i am getting three errors that I can't find a solution to.

这些是错误:

无法打开输出文件filename.exe:权限被拒绝
[错误] ld返回1个退出状态 目标'filename.exe'的配方失败

cannot open output file filename.exe: Permission denied
[Error] ld returned 1 exit status recipe for target 'filename.exe' failed

这是我的代码:

#include &#60windows.h&$62
#include &#60iostream&#62
#include &#60fstream&#62
#include &#60string&#62
#include &#60vector&#62
using namespace std;

HWND textfield;
/* This is where all the input to the window goes to */
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
switch(Message) {
    case WM_CREATE:

            CreateWindow("STATIC",
            "DocJoin Document Combiner",
            WS_VISIBLE | WS_CHILD | WS_BORDER,
            20,20,300,25,
            hwnd,NULL,NULL,NULL);
            break;

    /* Upon destruction, tell the main thread to stop */
    case WM_DESTROY: {
        PostQuitMessage(0);
        break;
    }

    /* All other messages (a lot of them) are processed using default procedures */
    default:
        return DefWindowProc(hwnd, Message, wParam, lParam);
}
return 0;
}

/* The 'main' function of Win32 GUI programs: this is where execution starts */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int     nCmdShow) {
WNDCLASSEX wc; /* A properties struct of our window */
HWND hwnd; /* A 'HANDLE', hence the H, or a pointer to our window */
MSG Msg; /* A temporary location for all messages */

/* zero out the struct and set the stuff we want to modify */
memset(&wc,0,sizeof(wc));
wc.cbSize        = sizeof(WNDCLASSEX);
wc.lpfnWndProc   = WndProc; /* This is where we will send messages to */
wc.hInstance     = hInstance;
wc.hCursor       = LoadCursor(NULL, IDC_ARROW);

/* White, COLOR_WINDOW is just a #define for a system color, try Ctrl+Clicking it */
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszClassName = "WindowClass";
wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION); /* Load a standard icon */
wc.hIconSm       = LoadIcon(NULL, IDI_APPLICATION); /* use the name "A" to use the project icon */

if(!RegisterClassEx(&wc)) {
    MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
    return 0;
}

hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","DocJoin",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, /* x */
    CW_USEDEFAULT, /* y */
    683, /* width */
    730, /* height */
    NULL,NULL,hInstance,NULL);

if(hwnd == NULL) {
    MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
    return 0;
}

/*
    This is the heart of our program where all input is processed and 
    sent to WndProc. Note that GetMessage blocks code flow until it receives something, so
    this loop will not produce unreasonably high CPU usage
*/
while(GetMessage(&Msg, NULL, 0, 0) > 0) { /* If no error is received... */
    TranslateMessage(&Msg); /* Translate key codes to chars if present */
    DispatchMessage(&Msg); /* Send it to WndProc */
}
return Msg.wParam;

}

这是Makefile.win:

and here is the Makefile.win:

# Project: ProjectName

# Makefile created by Dev-C++ 5.6.3

CPP      = g++.exe
CC       = gcc.exe
WINDRES  = windres.exe
OBJ      = main.o
LINKOBJ  = main.o
LIBS     = -L"[...]" -L"[...]" -static-libgcc -mwindows -g3
INCS     = -I"[...]" -I"[...]" -I"[...]"
CXXINCS  = -I"[..]" -I"[...]" -I"[...]" -I"[...]"
BIN      = filename.exe
CXXFLAGS = $(CXXINCS) -g3
CFLAGS   = $(INCS) -g3
RM       = rm.exe -f

.PHONY: all all-before all-after clean clean-custom

all: all-before $(BIN) all-after

clean: clean-custom
${RM} $(OBJ) $(BIN)

$(BIN): $(OBJ)
$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)

main.o: main.cpp
$(CPP) -c main.cpp -o main.o $(CXXFLAGS)

我花了3个小时进行研究和故障排除,但我感到很困惑. 这是我第一次使用C ++编译器,这意味着这是我的第一个程序.

I spent 3 hours doing research and troubleshooting and I am just stumped. This is my first time using a C++ compiler, meaning that its my first program.

推荐答案

您必须更改文件位置.

注意:请勿将文件保存在Program Files&在Microsoft Windows中Program Files (x86).

NOTE: Do not save your file in Program Files & Program Files (x86) in Microsoft Windows.

您可以使用其他路径,例如C:\USER\.....

You can use another path for example C:\USER\.....

这篇关于“无法打开输出文件filename.exe:权限被拒绝".的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆