VC2008 静态编译 lib文件解决方法
VC2008 静态编译 lib文件


本人 小白一个。。。。使用VC2008 通过Easyx加入<graphics.h>这个头文件,实现一些功能
我的程序大部分都是c语言的
这是一个扫雷游戏
现在我的问题就是 如何让我编译的程序可以在别人电脑上运行,使用静态编译,可是不会啊。。。。。
------解决思路----------------------
http://blog.****.net/bagboy_taobao_com/article/details/6417737
看这个试一下吧
本人 小白一个。。。。使用VC2008 通过Easyx加入<graphics.h>这个头文件,实现一些功能
我的程序大部分都是c语言的
这是一个扫雷游戏
#include <graphics.h>
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
#define maxx 11 //长宽都定义为11 第10个用来处理越界问题
typedef int Status;
typedef struct ge{
int b; //边上的雷数 (1~8)
char a; // 雷还是空 @雷 # 空
char c; //标记(一次两次) 外观,* 初始 !一次,?两次
}ge;
typedef struct leiqu{
int yy; //雷数
ge g[maxx][maxx];
int bj; //标记雷数
int wa;
}leiqu;
int Init(leiqu &L){
for(int i=0;i<maxx;i++){
for(int j=0;j<maxx;j++){
L.g[i][j].c='*';
L.g[i][j].a='#';
}
}
for(int i=0;i<maxx;i++){
L.g[i][10].a='^'; //在自动开挖是用到
L.g[10][i].a='^';
L.g[10][i].b=1;
L.g[i][10].b=1;
}
L.bj=0;
L.wa=0;
//setcolor(BLACK);
//TCHAR s[]=_T("请自定义雷数(推荐13个左右)");
//outtextxy(0,260, s);
printf("请自定义雷数(推荐13个左右)");
scanf("%d",&L.yy);
// L.yy=12;
srand((unsigned)time(NULL));
int x,y;
for(int j=0;j<L.yy;j++){
x=rand()%(maxx-1);
y=rand()%(maxx-1);
if(L.g[x][y].a=='#'){
L.g[x][y].a='@';
}else{
j--; //不能重复赋雷
}
}
for(int i=0;i<maxx-1;i++){
for(int j=0;j<maxx-1;j++){
int z=0,r,c;
for(r=i-1;r<=i+1;r++){
for(c=j-1;c<=j+1;c++){
if(L.g[r][c].a=='@'){
z++;
}
}
}
L.g[i][j].b=z;
}
}
return 1;
}
void get(leiqu &L){
setcolor(BLACK);
TCHAR yy[5];
TCHAR s[]=_T("wsad:上下左右;x:挖;v:标记;b:保存");
outtextxy(0,260, s);
setcolor(RGB(252,250,50));
for(int j=0;j<10;j++){
for(int i=0;i<10;i++){
rectangle(i*25,j*25,(i+1)*25,(j+1)*25);
if(L.g[j][i].a=='&'){
_stprintf(yy,_T("%d"),L.g[j][i].b);
outtextxy(i*25+10, j*25+5, yy);
}
if(L.g[j][i].c!='*'){
_stprintf(yy,_T("%c"),L.g[j][i].c);
outtextxy(i*25+10, j*25+5, yy);
}
}
}
}
int get2(leiqu &L){
cleardevice();
TCHAR s[5];
for(int j=0;j<10;j++){
for(int i=0;i<10;i++){
setcolor(RGB(252,250,50));
rectangle(i*25,j*25,(i+1)*25,(j+1)*25);
if(L.g[j][i].c=='!'){
if(L.g[j][i].a=='@'){
setcolor(GREEN);
_stprintf(s,_T("%c"),L.g[j][i].c);
outtextxy(i*25+8, j*25+5, s);
}else{
setcolor(RED);
_stprintf(s,_T("%c"),'X');
outtextxy(i*25+8, j*25+5, s);
}
}else{
if(L.g[j][i].a=='@'){
setcolor(RED);
_stprintf(s,_T("%c"),L.g[j][i].a);
outtextxy(i*25+8, j*25+5, s);
}else{
if(L.g[j][i].a=='&'){
setcolor(RGB(252,250,50));
_stprintf(s,_T("%d"),L.g[j][i].b);
outtextxy(i*25+10, j*25+5, s);
}
}
}
}
}
setcolor(BLACK);
TCHAR y[]=_T("人生自古谁无死,大侠请从新来过");
outtextxy(8,260, y);
TCHAR cc[]=_T("是否继续游戏?(Y/N)");
outtextxy(8,280, cc);
L.wa=-100;
return 0;
}
int get3(){
setcolor(BLACK);
TCHAR y[]=_T("恭喜,请问是否再来一局(Y/N)?");
outtextxy(0,280, y);
return 0;
}
void action5(leiqu &L){
//载入存档
FILE *fp;
char name[10];
printf("请输入文档名");
scanf("%s",&name);
if((fp=fopen(name,"r"))==NULL){
exit(0);
}
fread(&L,sizeof(struct leiqu),1,fp);
fclose(fp);
}
int action2(leiqu &L,int i,int j){
if(i<0||i>9||j<0||j>9){return 0;}
if(L.g[j][i].a=='&'||L.g[j][i].a=='^'){
return 0;
}
if(L.g[j][i].a=='@'){
get2(L);
return 0;
}
L.wa++;
if(L.wa+L.yy==100){
TCHAR s[5];
_stprintf(s,_T("%d"),L.g[j][i].b);
outtextxy(i*25+10, j*25+5, s);
}else{
TCHAR s[5];
_stprintf(s,_T("%d"),L.g[j][i].b);
outtextxy(i*25+10, j*25+5, s);
L.g[j][i].a='&';
if(L.g[j][i].b!=0){
return 0;
}
for(int c=i-1;c<=i+1;c++){
for(int r=j-1;r<=j+1;r++){
action2(L,c,r);
}
}
}
return 1;
}
int action3(leiqu &L,int i,int j){
if(L.g[j][i].a=='&'){
return 0;
}
char z=L.g[j][i].c;
switch(z){
case '*':L.g[j][i].c='!';L.bj++;break;
case '!':L.g[j][i].c='?';L.bj--;break;
case '?':L.g[j][i].c='*';break;
}
if(L.g[j][i].c=='*'){
TCHAR s[]=_T(" ");
outtextxy(i*25+10,j*25+5,s);
return 0;
}
TCHAR s[5];
_stprintf(s,_T("%c"),L.g[j][i].c);
outtextxy(i*25+10, j*25+5, s);
}
void action4(leiqu L){
//保存信息
closegraph();
FILE *fp;
char bb;
char name[10];
printf("请输入要保存信息的文件名");
scanf("%s",name);
if((fp=fopen(name,"w"))==NULL){
printf("失败 ");
exit(0);
}
fwrite(&L,sizeof(struct leiqu),1,fp); // 使用数据块读写函数
fclose(fp);
printf("储存结束是否退出(Y/N)");
getchar();
bb=getchar();
if(bb=='Y'||bb=='y'){
exit(0);
}
initgraph(800,600);
setorigin(250,100);
setbkcolor(RGB(51,108,211));
cleardevice();
}
int action(leiqu &L){
get(L);
int i=5,j=5;
char yy;
setcolor(BLACK);
rectangle(i*25,j*25,(i+1)*25,(j+1)*25);
for(;;){
yy=getch();
setcolor(RGB(252,250,50));
rectangle(i*25,j*25,(i+1)*25,(j+1)*25);
if(yy==-32){
yy=getch();{
switch(yy){
case 72:
if(j==0){j=9;}else{j-=1;}break;
case 80:
if(j==9){j=0;}else{j+=1;}break;
case 75:
if(i==0){i=9;}else{i-=1;}break;
case 77:
if(i==9){i=0;}else{i+=1;}break;
}
}else{
switch(yy){
case 'w':case 'W':
if(j==0){j=9;}else{j-=1;}break;
case 's':case 'S':
if(j==9){j=0;}else{j+=1;}break;
case 'a':case 'A':
if(i==0){i=9;}else{i-=1;}break;
case 'd':case 'D':
if(i==9){i=0;}else{i+=1;}break;
case 'x':case 'X':
action2(L,i,j);break;
case 'v':case 'V':
action3(L,i,j);break;
case 'B':case 'b':
action4(L);get(L);break;
}}
if(L.wa==-100){
return 0;
}
if(L.wa+L.yy>=100&&L.yy!=100){
get3();
return 1;
}
setcolor(BLACK);
rectangle(i*25,j*25,(i+1)*25,(j+1)*25);
}
return 0;
}
int main(){
char y;
//initgraph(800,600);
//setorigin(250,100);d
do{
leiqu L;
//setbkcolor(RGB(51,108,211));
//cleardevice();
printf("是否载入存档(Y/N)?\n");
char cc;
cc=getch();
if(cc=='Y'||cc=='y'){
action5(L);
}else{
Init(L);
}
initgraph(800,600);
setorigin(250,100);
setbkcolor(RGB(51,108,211));
cleardevice();
action(L);
//closegraph();
y=getch();
closegraph();
system("cls");
}while(y=='Y'||y=='y');
}
现在我的问题就是 如何让我编译的程序可以在别人电脑上运行,使用静态编译,可是不会啊。。。。。
------解决思路----------------------
http://blog.****.net/bagboy_taobao_com/article/details/6417737
看这个试一下吧