Visual Studio 2012 [c++] als admin debuggen.

Hallo liebe Community, ich bins mal wieder, euer C++ newbie :D
Kurz erklärt, folgendes Problem: Ich brauche Adminrechte, um mein Programm auszuführen.
Laut Google Suche sollte ich folgendes machen:
Eigenschaften->Konfigurationseigenschaften->Linker->Manifestdatei->UAC_Ausführungsebene = requireAdministrator;
Gesagt, getan. Visual Studio nochmal als Admin gestartet und debuggt, leider gibt mein Programm die Fehlermeldung aus an der Stelle, wo ich die Rechte brauche:
Code:
Couldn't open jinx.bmp
Wenn ich in den Debug Ordner meines Projektes gehe und die Anwendung manuell starte, gehts einwandfrei.

Randinformationen:
IDE: VS2012 Express (VS 11.0)
Dateien im Debug Ordner:
  • hotjinx.bmp
  • SDL2.dll
  • SDLTest.exe
  • SDLTest.ilk
  • SDLTest.pdb
Mein Code (main.cpp):
C++:
/* Includes */
#include <iostream>
#include <SDL.h>

/* Definitions */
#undef main

/* Usings */
using namespace std;

/**
Einstiegspunkt der Anwendung
*/
int main(int ArgumentCount, char* Arguments[])
{
	SDL_Window* Window;
	SDL_Renderer* Renderer;
	SDL_Surface* Bitmap;
	SDL_Texture* Texture;
	SDL_Rect* SourceRectangle = new SDL_Rect();
	SDL_Rect* DestinationRectangle = new SDL_Rect();

	if (SDL_Init(SDL_INIT_EVERYTHING) == -1)
	{
		cout << SDL_GetError() << endl;
		SDL_Delay(4000);
		return 1;
	}
	
    Window = SDL_CreateWindow("Hello World!", 100, 400, 640, 480, SDL_WINDOW_SHOWN);
	if (!Window)
	{
        cout << SDL_GetError() << endl;
		SDL_Delay(4000);
        return 2;
    }
	
    Renderer = SDL_CreateRenderer(Window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
    if (!Renderer)
	{
        cout << SDL_GetError() << endl;
		SDL_Delay(4000);
        return 3;
    }
	
    Bitmap = SDL_LoadBMP("hotjinx.bmp");
    if (!Bitmap)
	{
        std::cout << SDL_GetError() << std::endl;
		SDL_Delay(4000);
        return 4;
    }

	SourceRectangle->x = 0;
	SourceRectangle->y = 0;
	SourceRectangle->h = Bitmap->h;
	SourceRectangle->w = Bitmap->w;
	DestinationRectangle->x = 320 - Bitmap->w / 2;
	DestinationRectangle->y = 0;
	DestinationRectangle->w = Bitmap->w;
	DestinationRectangle->h = Bitmap->h;
	Texture = SDL_CreateTextureFromSurface(Renderer, Bitmap);
	SDL_FreeSurface(Bitmap);
	SDL_RenderClear(Renderer);
    SDL_RenderCopy(Renderer, Texture, SourceRectangle, DestinationRectangle);
    SDL_RenderPresent(Renderer);
	SDL_Delay(10000);
	SDL_DestroyTexture(Texture);
    SDL_DestroyRenderer(Renderer);
    SDL_DestroyWindow(Window);
	SDL_Quit();
	return 0;
};
 
Hi

Schau auch, dass du in diesen Einstellungen als Working Directory das gleiche hast:
http://puu.sh/5wAhX.png

Wenn du dein Programm sonst mit F5 startest hast du nämlich normalerweise nicht den Ausgabeordner als working directory sondern den Pfad zum Projekt selber.

Viele Grüsse
Cromon
 
Erstmal danke an alle Antworten hier! Ich habe mich von unten durch die Lösungsvorschläge arbeiten wollen, aber hey, Cromons lösung war von Anfang an richtig (Ich glaube, ich musste das ändern, weil ich mein Standartverzeichnis für meine VS Projekte auf eine andere Festplatte verlegt habe)

Gruß,
JustShinigami
 
Zurück