Visual Studio无法加载一大堆dll

时间:2016-03-30 19:29:02

标签: c++ visual-studio dll graphics visual-studio-2015

视觉工作室今天真的搞乱了我的一天。我刚刚完成了我的马里奥级别编辑器的基础(使用winbgim graphics.h制作。是的,即时通讯使用它与视觉工作室,它有效),当我决定添加一个新的基本块(我只有问号块在一段时间)。这个过程相当简单,只需更改一些内容并导入新的位图。我编译了程序,我立即注意到程序运行就像在某处有2秒的延迟。加载背景颜色需要大约1.5秒。 当我从视觉学习中走出来时,这些错误出现在调试窗口中:

'bgi.exe' (Win32): Loaded 'C:\Users\Moustachespy\Source\Repos\CreateRemake\bgi\Release\bgi.exe'. Symbols loaded.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\user32.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\comdlg32.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\combase.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rpcrt4.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sspicli.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cryptbase.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\bcryptprimitives.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sechost.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\SHCore.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\shlwapi.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\shell32.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.10586.0_none_811bc0006c44242b\comctl32.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cfgmgr32.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\advapi32.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\windows.storage.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel.appcore.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\powrprof.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\profapi.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\FirewallAPI.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\netapi32.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ole32.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\oleaut32.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\davhlpr.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\imm32.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\fwbase.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\uxtheme.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msctf.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dwmapi.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\coml2.dll'. Cannot find or open the PDB file.
'bgi.exe' (Win32): Loaded 'C:\Windows\SysWOW64\asycfilt.dll'. Cannot find or open the PDB file.
The thread 0x4360 has exited with code 0 (0x0).
The thread 0x2858 has exited with code 0 (0x0).
The thread 0x40f4 has exited with code 0 (0x0).
The thread 0x1e08 has exited with code 0 (0x0).
The program '[152] bgi.exe' has exited with code 0 (0x0).

我真的不知道那里发生了什么: 下面是新代码:

#include "graphics.h"
//#include <Windows.h>
#include <math.h>
#include <fstream>

void drawGridOnX(int xtotal, int ytotal);
int levelcode[400][45][1];
void decodelevelAndDraw(int minx,int maxx);
void saveCurrentLevel();

void main() {
    initwindow(1600, 900,"Testscreen",0,0,true,true);
    int x=0,y=0,xmin=0,xmax=23,cellx,celly,cellSize=70, xtotal = 0, ytotal = 0,counter=0,blockchosen=1;
    // gridposx = 0, gridposy = 0, diffx = 0, diffy = 0, distanceFromMouse = 40, titlenumberx = 0, titlenumbery = 0,

    while (1) {
        setbkcolor(9);
        cleardevice();
        ytotal = 0;
        /*diffx = mousex() - gridposx;
        while (gridposx < mousex()&&diffx>=70) {
            gridposx += 70;

        }
        while (gridposx > mousex()&&diffx<=-70 + distanceFromMouse) {
            gridposx =gridposx-70;

        }
        diffy = mousey() - gridposy;
        while (gridposy < mousey() && diffy >= 70) {
            gridposy += 70;

        }
        while (gridposy > mousey() && diffy <= -70+distanceFromMouse) {
            gridposy = gridposy - 70;

        }
        */
        cellx = std::floor(mousex() / cellSize);
        celly = std::floor(mousey() / cellSize);
        blockchosen = 0;
        while (ytotal < 900) {
            drawGridOnX(xtotal, ytotal);
            ytotal += 70;
        }

        if(GetAsyncKeyState(VK_RETURN)){
            //saveCurrentLevel();

        }
        else if (GetAsyncKeyState(VK_SHIFT)) {
            blockchosen = 2;


        }else if (ismouseclick(WM_LBUTTONDOWN)) {
                if (ismouseclick(WM_LBUTTONUP)) {

                    getmouseclick(WM_LBUTTONUP, x, y);
                    getmouseclick(WM_LBUTTONDOWN, x, y);
                }
                //cellx = gridposx / 70;
                //celly = gridposy / 70;
                cellx += xmin;

                levelcode[cellx][celly][0]=blockchosen;
                //printf("CLICK");
            }else if (ismouseclick(WM_RBUTTONDOWN)) {
                    if (ismouseclick(WM_RBUTTONUP)) {

                        getmouseclick(WM_RBUTTONUP, x, y);
                        getmouseclick(WM_RBUTTONDOWN, x, y);
                    }
                    //cellx = gridposx / 70;
                    //celly = gridposy / 70;
                    cellx += xmin;
                    levelcode[cellx][celly][0] = 0;
                    //printf("CLICK");
                }else if (GetAsyncKeyState(0x27)) {
                        //printf("RIGHT\n\n\n\n");
                        Sleep(100);
                        xmin++;
                        xmax++;
                    }else if (GetAsyncKeyState(0x25)&&xmin!=0) {
                        //printf("RIGHT\n\n\n\n");
                        Sleep(100);
                        xmin--;
                        xmax--;
                }
        decodelevelAndDraw(xmin,xmax);
        readimagefile("question_blueprint.jpg", cellx*70,celly*70, 70+cellx*70, 70+celly*70);
        //settextstyle(SANS_SERIF_FONT,1);
        settextstyle(SANS_SERIF_FONT, HORIZ_DIR, 1);
        outtextxy(0, 0, "Press Enter to save");
        //printf("gridposx:%d\tgridposy:%d\ttitlenumberx:%d\ttitlenumbery%d",gridposx,gridposy,gridposx/70,gridposy/70);
        swapbuffers();

    }
}


void drawGridOnX(int xtotal, int ytotal) {
    while (xtotal < 1600) {
        rectangle(xtotal, ytotal, 70 + xtotal, 70+ytotal);
        xtotal += 70;

    }


}


void decodelevelAndDraw(int minx,int maxx) {
    int x = 0, y = 0;
    while (y != 13) {
        while (x != maxx) {
            if (levelcode[x][y][0] == 1) {
                //x -= minx;
                readimagefile("question.jpg", x*70-minx*70, y*70, 70 + x*70-minx*70, 70 + y*70);
                //printf("Block added at %d;%d", x * 70, y * 70);
            }else readimagefile("grass.bmp", x * 70 - minx * 70, y * 70, 70 + x * 70 - minx * 70, 70 + y * 70);
            x++;
        }
        x = 0;
        y++;
    }
}

/*
void saveCurrentLevel() {
    int x = 0, y = 0, z = 0;
    ofstream map;
    map.open("map.txt");
    while (y < 13) {


        while (x < 400) {
            map << levelcode[x][y][z];
        }
        x = 0;
        y++;
        map << "\n";
    }
    map.close();



}
*/

旧(和工作)代码:     #include“graphics.h”     //#包括     #包括     #include

void drawGridOnX(int xtotal, int ytotal);
int levelcode[400][45][1];
void decodelevelAndDraw(int minx,int maxx);
void saveCurrentLevel();

void main() {
    initwindow(1600, 900,"Testscreen",0,0,true,true);
    int x=0,y=0,xmin=0,xmax=23,cellx,celly,cellSize=70, xtotal = 0, ytotal = 0,counter=0;
    // gridposx = 0, gridposy = 0, diffx = 0, diffy = 0, distanceFromMouse = 40, titlenumberx = 0, titlenumbery = 0,

    while (1) {
        setbkcolor(9);
        cleardevice();
        ytotal = 0;
        /*diffx = mousex() - gridposx;
        while (gridposx < mousex()&&diffx>=70) {
            gridposx += 70;

        }
        while (gridposx > mousex()&&diffx<=-70 + distanceFromMouse) {
            gridposx =gridposx-70;

        }
        diffy = mousey() - gridposy;
        while (gridposy < mousey() && diffy >= 70) {
            gridposy += 70;

        }
        while (gridposy > mousey() && diffy <= -70+distanceFromMouse) {
            gridposy = gridposy - 70;

        }
        */
        cellx = std::floor(mousex() / cellSize);
        celly = std::floor(mousey() / cellSize);
        while (ytotal < 900) {
            drawGridOnX(xtotal, ytotal);
            ytotal += 70;
        }

        if(GetAsyncKeyState(VK_RETURN)){
            //saveCurrentLevel();

        }else if (ismouseclick(WM_LBUTTONDOWN)) {
                if (ismouseclick(WM_LBUTTONUP)) {

                    getmouseclick(WM_LBUTTONUP, x, y);
                    getmouseclick(WM_LBUTTONDOWN, x, y);
                }
                //cellx = gridposx / 70;
                //celly = gridposy / 70;
                cellx += xmin;
                levelcode[cellx][celly][0]=1;
                //printf("CLICK");
            }else if (ismouseclick(WM_RBUTTONDOWN)) {
                    if (ismouseclick(WM_RBUTTONUP)) {

                        getmouseclick(WM_RBUTTONUP, x, y);
                        getmouseclick(WM_RBUTTONDOWN, x, y);
                    }
                    //cellx = gridposx / 70;
                    //celly = gridposy / 70;
                    cellx += xmin;
                    levelcode[cellx][celly][0] = 0;
                    //printf("CLICK");
                }else if (GetAsyncKeyState(0x27)) {
                        //printf("RIGHT\n\n\n\n");
                        Sleep(100);
                        xmin++;
                        xmax++;
                    }else if (GetAsyncKeyState(0x25)&&xmin!=0) {
                        //printf("RIGHT\n\n\n\n");
                        Sleep(100);
                        xmin--;
                        xmax--;
                }
        decodelevelAndDraw(xmin,xmax);
        readimagefile("question_blueprint.jpg", cellx*70,celly*70, 70+cellx*70, 70+celly*70);
        //settextstyle(SANS_SERIF_FONT,1);
        settextstyle(SANS_SERIF_FONT, HORIZ_DIR, 1);
        outtextxy(0, 0, "Press Enter to save");
        //printf("gridposx:%d\tgridposy:%d\ttitlenumberx:%d\ttitlenumbery%d",gridposx,gridposy,gridposx/70,gridposy/70);
        swapbuffers();

    }
}


void drawGridOnX(int xtotal, int ytotal) {
    while (xtotal < 1600) {
        rectangle(xtotal, ytotal, 70 + xtotal, 70+ytotal);
        xtotal += 70;

    }


}


void decodelevelAndDraw(int minx,int maxx) {
    int x = 0, y = 0;
    while (y != 13) {
        while (x != maxx) {
            if (levelcode[x][y][0] == 1) {
                //x -= minx;
                readimagefile("question.jpg", x*70-minx*70, y*70, 70 + x*70-minx*70, 70 + y*70);
                //printf("Block added at %d;%d", x * 70, y * 70);
            }
            x++;
        }
        x = 0;
        y++;
    }
}

/*
void saveCurrentLevel() {
    int x = 0, y = 0, z = 0;
    ofstream map;
    map.open("map.txt");
    while (y < 13) {


        while (x < 400) {
            map << levelcode[x][y][z];
        }
        x = 0;
        y++;
        map << "\n";
    }
    map.close();



}
*/

我正在使用此网站的graphics.h文件:http://winbgim.codecutter.org/ 是的,我绝对必须使用graphics.h。问我的老师。 是的,我必须将该数组作为全局变量。很多人不喜欢这样,我不是其中之一,但它更容易使用。它不像全球的1阵列会伤害任何人吗?

如果您需要任何内容​​,请提供我的ENTIRE项目文件夹的拉链:https://www.dropbox.com/s/kym5r1sggmym78f/bgi.rar?dl=0

我知道我的计划中有很多评论。他们没有任何关系。这些只是我使用的旧方法,现在被新的方法取代。我把它们作为备用计划留在那里。

我正在使用:赢10 VS2015社区

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

查看您的decodelevelAndDraw()功能。

&#34; old&#34;只画了一个&#34; question.jpg&#34;如果该单元格的1地图中有levelcode,则会显示图片。

&#34; new&#34;一个人画&#34; grass.bmp&#34;在每个其他单元格中。这需要一些时间......

P.S。我不知道你的readimagefile()函数做了什么;我希望每次你需要绘制它时,它实际上并没有加载相同的JPEG图像。可以只预加载一次吗?