首页
社区
课程
招聘
一个MESSAGEBOX有这么难吗??(其实就是想做一个带导出函数的EXE文件而已)
发表于: 2008-1-18 10:18 5221

一个MESSAGEBOX有这么难吗??(其实就是想做一个带导出函数的EXE文件而已)

2008-1-18 10:18
5221
D:\mytest>cl /c main.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

main.cpp

D:\mytest>link main.obj
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

   Creating library debug/mytest.exe and object debug/mytest.exp
main.obj : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
debug/mytest.exe : fatal error LNK1120: 1 unresolved externals

原代码如下:
#include "windows.h"

#pragma  comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
#pragma  comment(linker,"/out:debug/mytest.exe")

extern "C" _declspec(dllexport) int _stdcall Max(int a, int b)
{
        if(a>=b)return a;
        else
        return b;
}

int main()
{
        MessageBox(NULL,(LPSTR)L"这是一个测试程序",(LPSTR)L"ok",0);
        return 0;
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
再加上一句试试:
#pragma comment(lib,"User32.lib")
2008-1-18 10:30
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢小虾,编译可以通过了
但是
MessageBox(NULL,(LPSTR)L"这是一个测试程序",(LPSTR)L"ok",0);
这个LPSTR不可以,显示乱码
MSDN中使用的是LPCWSTR,可是我用了却无法编译
2008-1-18 11:00
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
4
去掉那个“L”就行了
2008-1-18 11:12
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
OK了,我是抄的MSDN的码
2008-1-18 11:15
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
link的时候加上 user32.lib
2008-1-21 16:51
0
雪    币: 102
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
支持unicode的话,要把main改成_tmain 并导入<tchar.h>
2008-1-21 16:57
0
游客
登录 | 注册 方可回帖
返回
//