VC6.0中建立console程序:
#include<iostream.h>
class N
{public:
int a;
N(){a=1;cout<<"a="<<a<<endl;}
};
N nn;
void mymain()//设置自己的入口函数名
{}
//
将project/settings/link/entry-point symbol:设为mymain
//
F7后出现如下错误:
Compiling...
mymain123.cpp
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/mymain123.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
#include<iostream.h>
class N
{public:
int a;
N(){a=1;cout<<"a="<<a<<endl;}
};
N nn;
void mymain()//设置自己的入口函数名
{}
//
将project/settings/link/entry-point symbol:设为mymain
//
F7后出现如下错误:
Compiling...
mymain123.cpp
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/mymain123.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
解决方案 »
- 指针问题
- DeleteItem的怪问题
- listcontrol单击问题..??
- 祝大家新春愉快、身体健康、鸡年如意!
- 求教!!!我用ActiveX控件开发ADO应用程序.用Microsoft DataGrid Control Version6.0来显示数据,请问如何获取显示的记录,比如显示在Message
- 怎样可以逐行调试用VC写的COM。一个很简单的问题,在线等待。
- 怎么连不上网易邮箱的服务器呢
- 转换字符串到浮点数
- 单文档中,OnDraw()问题!
- COleDataSource文件拖放问题
- 用什么办法可以,让Dialog内的一个控件脱离dialog显示
- 用什么办法可以,让Dialog内的一个控件脱离dialog显示
不过我试过链接到DLL版本的c/c++运行库,结果编译链接可以。
还有,若是这个程序中不引用运行库的函数,不论包含静态的c/c++运行库或链接到DLL版本的c/c++运行库都可以。
一个人问我C++程序用一个其他函数名代替main可以不可以。
我认为有个运行期启动函数是其入口,可以通过编译器改变这个入口即我说的将project/settings/link/entry-point symbol:设为mymain。但是发现运行时错了,如上面大家看到的。
to carolx
"还有,若是这个程序中不引用运行库的函数,不论包含静态的c/c++运行库或链接到DLL版本的c/c++运行库都可以。"
那么输出怎么办?
虽然可以不引用c/c++运行库的函数,但要输出总是要与OS提供的接口打交到。可以把程序链接到kernel32.dll user32.dll gdi32.dll,这样就可以使用WIN32 API 的很多函数,比如:CreateFile WriteFile CreateWindow DrawText MessageBox.
为了程序的可移植性,用c/c++运行库还是比直接使用Win32 API更好移植。为了使你的程序编译链接OK,又要c/c++运行库的支持,那么就链接到DLL版本的c/c++运行库 msvcrt.dll msvcirt.dll,可以从这里设置:
Project -> setting -> c/c++ 选项卡 -> 在Category 中选 Code generation ,将 Use Runtime Library 设置为 DLL multithreaded 或 Debug DLL multithreaded,然后编译就OK了。
谢谢,按照你的说法果然好使!
关于编译链接这些东西小弟知之甚少,关于为什么好使,我再学学。
分数20给你(今天加不了,明天再加),别嫌少,希望关注我的新问题。