编译出现无可用源错误
来源:互联网 发布:如何隐藏域名信息 编辑:程序博客网 时间:2024/06/06 17:14
无可用源 没有可用于当前位置的源代码
其实是文件的源代码错误引发的系列结果
调用堆栈位置:Snake1.exe!_VEC_memset()
为“f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memset.c”查找源。Checksum:MD5 {f8 2b c1 a7 1 0 c7 c2 83 28 86 be 83 1e 7b 1c}
文件“f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memset.c”不存在。
正在脚本文档中查找“f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memset.c”...
正在项目中查找“f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memset.c”。
在项目中未找到该文件。
正在目录“C:\Program Files\Microsoft Visual Studio11.0\VC\crt\src\”中查看...
正在目录“C:\Program Files\Microsoft Visual Studio11.0\VC\crt\src\vccorlib\”中查看...
正在目录“C:\Program Files\Microsoft Visual Studio11.0\VC\atlmfc\src\mfc\”中查看...
正在目录“C:\Program Files\Microsoft Visual Studio11.0\VC\atlmfc\src\atl\”中查看...
正在目录“C:\Program Files\Microsoft Visual Studio11.0\VC\atlmfc\include”中查看...
正在目录“C:\Program Files\Microsoft Visual Studio11.0\VC\atlmfc\src\mfc”中查看...
正在目录“C:\Program Files\Microsoft Visual Studio11.0\VC\atlmfc\src\mfcm”中查看...
正在目录“C:\Program Files\Microsoft Visual Studio11.0\VC\atlmfc\src\atl”中查看...
正在目录“C:\Program Files\Microsoft Visual Studio11.0\VC\crt\src”中查看...
正在目录“”中查看...
正在目录“C:\Program Files\Microsoft Visual Studio11.0\VC\include”中查看...
正在目录“C:\Program Files\Microsoft Visual Studio11.0\VC\atlmfc\include”中查看...
正在目录“C:\Program Files\Windows Kits\8.0\Include\um”中查看...
正在目录“C:\Program Files\WindowsKits\8.0\Include\shared”中查看...
正在目录“C:\Program Files\WindowsKits\8.0\Include\winrt”中查看...
调试器将要求用户查找文件:f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memset.c。
用户在“查找源”对话框中按了“取消”。活动解决方案的调试源文件设置已修改,这样调试器将不会要求用户查找文件:f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memset.c。
调试器未能找到源文件“f:\dd\vctools\crt_bld\self_x86\crt\prebuild\string\i386\p4_memset.c”。
之后做了一些调试,改了一下,逻辑错误:
void Logic()
{
static int iStep = timeGetTime();//速度太快了,限制一下
if(timeGetTime()-iStep > 300)//300毫秒移动一次,想快点可以改,可作为难度递增,改小值
{
iStep = timeGetTime();
//控制蛇运动
if(iKey ==VK_UP) //如果按下“向上键”
{
if(iSnakeDir ==DIR_LT||iSnakeDir==DIR_RT)//若蛇正在往左右走时才能改变
{
iSnakeDir = DIR_UP;
}
}
else if(iKey ==VK_DOWN) //如果按下“向下键”
{
if(iSnakeDir ==DIR_LT||iSnakeDir==DIR_RT)//若蛇正在往左右走时才能改变
{
iSnakeDir = DIR_DN;
}
}
else if(iKey ==VK_LEFT) //如果按下“向左键”
{
if(iSnakeDir ==DIR_UP||iSnakeDir==DIR_DN)//若蛇正在往左右走时才能改变
{
iSnakeDir = DIR_LT;
}
}
else if(iKey ==VK_RIGHT) //如果按下“向右键”
{
if(iSnakeDir ==DIR_UP||iSnakeDir==DIR_DN)//若蛇正在往左右走时才能改变
{
iSnakeDir = DIR_RT;
}
}
//错误代码 }if ,移动到下面了
//蛇运动,其实蛇的运动就是蛇头根据方向向前走一步,而蛇尾去掉一步,
//如果转为算法就是在队列前根据方向加多一个节点,去掉队列最后一个节点
POINT ptHead = g_SnakeDeque.front();//获取第一个节点
if(iSnakeDir == DIR_UP)
{
ptHead.y -= 30;
}
else if(iSnakeDir == DIR_DN)
{
ptHead.y += 30;
}
else if(iSnakeDir == DIR_LT)
{
ptHead.x -= 30;
}
else if(iSnakeDir == DIR_RT)
{
ptHead.x += 30;
}
//蛇出界或者吃到自己则死亡
if(ptHead.x<0||ptHead.x>=600||ptHead.y<0||ptHead.y>=600||isInSnake(ptHead))
{
mciSendString("play dieMusic from0",NULL,0,NULL);//播放死亡音乐
g_SnakeDeque.clear();//全清
POINT ptSnake = {300,300};//定义蛇的位置
g_SnakeDeque.push_back(ptSnake);//放入蛇的节点
iLife--;
if(iLife<=0)
{//MessageBox(NULL,"GameOver!","贪吃蛇",MB_OK|MB_ICONWARNING);
DestroyWindow(g_hWnd);//摧毁关闭窗口
return;
}
iSnakeDir = rand()%4;//随机蛇运动方向
}
else if(ptHead.x == g_FoodPos.x&& ptHead.y ==g_FoodPos.y)//蛇吃到食物
{
mciSendString("play eatMusic from0",NULL,0,NULL);//播放吃到食物音乐
g_SnakeDeque.push_front(ptHead);//新的位置加入蛇头,蛇头往前移动
RandFood();//重新随机生成食物
}
else //无出界,无吃到自身,无吃到食物,正常行走
{
g_SnakeDeque.push_front(ptHead); //新的位置加入蛇头,蛇头往前移动
g_SnakeDeque.pop_back(); //删除最后节点,蛇尾往前收
}
}//if ——移动到此处
//以下为绘画内容
RECT rc = {0,0,600,600};
FillRect(g_hBufDC,&rc,(HBRUSH)GetStockObject(WHITE_BRUSH));//清除缓冲DC内容
//内容先绘图如缓冲DC
g_Bg.Draw(g_hBufDC,0,0);
for(UINT i = 0;i<g_SnakeDeque.size();i++) //遍历蛇的节点,绘画蛇的样子
{
if(i==0)//蛇头
{
g_Head.Draw(g_hBufDC,g_SnakeDeque[i].x,g_SnakeDeque[i].y);//把蛇头的样子画到指定位置节点上
}
else if(i == g_SnakeDeque.size()-1)//蛇尾
{
g_Rear.Draw(g_hBufDC,g_SnakeDeque[i].x,g_SnakeDeque[i].y);//把蛇尾的样子画到指定位置节点上
}
else
{
g_Snake.Draw(g_hBufDC,g_SnakeDeque[i].x,g_SnakeDeque[i].y);//把蛇身的样子画到指定位置节点上
}
}
//绘画食物
g_Food.Draw(g_hBufDC,g_FoodPos.x,g_FoodPos.y);
//绘画生命数
char sz[32] = {0};
for(int i = 0;i<iLife;i++)
{
strcat_s(sz,"★");
}
SetTextColor(g_hBufDC,RGB(255,0,0));//设置字体颜色
SetBkMode(g_hBufDC,TRANSPARENT);//设置字体背景颜色为透明
TextOut(g_hBufDC,0,0,sz,strlen(sz));//输出字体
//缓冲DC的内容写入主DC显示
BitBlt(g_hDC,0,0,600,600,g_hBufDC,0,0,SRCCOPY);
}
主页面没有图像显示也是类似的错误:
// 主消息循环:
ZeroMemory(&msg,sizeof(MSG));
while (msg.message != WM_QUIT)
{
if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable,&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}//if
else
{
Logic();//有消息则处理消息,无则处理Logic()
}
}//while
最后一个错误是:输入错误,导致上面的错误代码。在调试时,真心看不懂内部函数,原来是调用MCI时的函数 出错了。
mciSendString("open bg.mp3 aliasbgMusic",NULL,0,NULL);//发送MIC命令:打开bgMusic.mp3文件,并命名为bgMusic记住这名字很重要 bg.mp3才是我的资源文件。
mciSendString("play bgMusic from Orepeat",NULL,0,NULL);//从0开始播放bgMusic,并重复播放,其他的命令还算有stop,pause等,0和o是明显区别的,新手常错啊。。
//以此类推,先读取吃到食物和死亡的音乐,在指定位置播放
mciSendString("open eat.wav aliaseatMusic",NULL,0,NULL);//能支持CD,MP3,WAV,MIDI,AVI等格式,不支持RM或RMVB/OGG等
mciSendString("open die.wav aliasdieMusic",NULL,0,NULL);
解决以上问题之后还是出现中断问题,但是后台音乐播放可以正常了
错误之库函数参数错误:
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
}
0 0
- 编译出现无可用源错误
- vs2010无可用源
- vs2010无可用源
- vs2010无可用源
- vs2010无可用源
- ITOO-无可用源
- VS2010 无可用源
- linux编译出现错误
- 编译出现的错误
- @override 出现编译错误
- 内核编译出现错误
- LaTeX编译出现错误?
- 编译A31S出现错误
- 编译内核出现错误
- QT程序编译无错误,运行时出现访问地址冲突
- VS2005 编译环境报错,报无可用平台,解决方案!
- 编译出现 linking nonincrementally错误
- linux 编译出现的错误
- TestSet 学习使用set容器的基…
- 转载 一个时间复杂度为O(N)的算法
- mianwww上面偷来的试题,目的在于…
- new与malloc alloc 偷来的
- 转 SQL Server htt…
- 编译出现无可用源错误
- 来自C++群内的贪吃蛇教程。终于不…
- Qt HelloWorld 用label显示
- Huffman编码的c语言实现
- Qt HelloWorld 使用button显示
- 系统下载资源管理
- Qt slider和spinbox练习
- 2013年07月15日
- 一周工作总结