最近在抽空学习windows编程,跑下面代码的时候遇到了一个错误。
代码如下:
#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR szCmdLine,int iCmdShow)
{
static TCHAR szAppName[]=TEXT("HelloWin");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc=WndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName=NULL;
wndclass.lpszClassName=szAppName;
if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("蛋疼啊!"),szAppName,MB_ICONERROR);
return 0;
}
hwnd=CreateWindow(szAppName,TEXT("还是蛋疼啊!"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL,);
ShowWindow(hwnd,iCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(message)
{
case WM_CREATE:
PlaySound(TEXT("hellowind.wav"),NULL,SND_FILENAME|SND_ASYNC);
return 0;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
DrawText(hdc,TEXT("继续蛋疼!"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hwnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}
编译时没有报错,但是运行的时候会报如下错误:
--------------------Configuration: HelloWin - Win32 Debug--------------------
Linking...
HelloWin.obj : error LNK2001: unresolved external symbol __imp__PlaySoundA@12
Debug/HelloWin.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
HelloWin.exe - 2 error(s), 0 warning(s)
经过仔细研究之后,发现是运行的时候少了一个lib文件,故解决方案如下:
Project Settings-> Object/library modules 输入 Winmm.lib
再次运行OK
分享到:
相关推荐
在C#中,窗体之间的方法调用是一个常见的需求,特别是在复杂的桌面应用程序设计中。本文将根据提供的标题、描述、标签以及部分内容,详细介绍如何在C#的一个窗体中调用另一个窗体的方法,并探讨其中涉及的技术细节。...
本文将详细讲解如何在一个类中调用另一个类的数据成员,包括两种主要的方法:对象引用和友元函数。这两种方法都有其特定的应用场景和优缺点,开发者应根据实际需求选择合适的方式。 ### 1. 对象引用 对象引用是一...
- `public string ButtShow(string strs)`:定义了一个公共方法`ButtShow`,接受一个字符串参数`strs`并返回原字符串。 **原理**: - 在这个例子中,`ButtShow`方法被直接嵌入到了HTML中,当页面加载时,ASP.NET...
假设在父页面上有一个名为`updateParentData`的函数,可以在子页面中这样调用: ```javascript parent.updateParentData('子页面传递的数据'); ``` 接着,我们讨论“子页面给父页面赋值”。当子页面完成了某些操作...
这个类继承自`Frame`类,并且包含了一个静态方法`AudioBox`用于播放音频。 3. **加载音频文件** - 使用`java.io.File`类加载本地磁盘上的音频文件。这里假设音频文件名为`love.wav`,并且存放在`D:\`目录下。 - ...
当调用出错时,DWR会返回一个包含错误信息的对象,可以在客户端捕获并处理。 9. **示例项目"DwrTest"** "DwrTest"可能是一个包含DWR配置、Java服务端代码和前端调用示例的项目。通过这个项目,开发者可以实践DWR...
Java Native Access (JNA) 是一个流行的开源框架,它允许Java代码直接调用本机库函数,而无需编写JNI(Java Native Interface)代码。本文将详细介绍如何使用JNA在Java中调用第三方DLL以及提供的DEMO示例。 首先,...
对于音频播放而言,WinCE提供了CoreDll.dll库,这是一个包含了核心系统服务的动态链接库,其中就包括了播放音频的功能。 在C#中,可以通过**平台调用**(Platform Invoke,简称P/Invoke)机制来调用WinCE中CoreDll....
2. **打开连接**:使用`xmlhttp.Open("POST", URL, false)`方法打开一个到指定URL的POST请求连接。参数`false`表示同步请求,即执行完此方法后会等待服务器响应。 3. **设置请求头**: - `xmlhttp....
在上面的代码中,我们使用 `Runtime` 类的 `getRuntime` 方法获取当前进程,然后使用 `exec` 方法执行一个外部命令,打开 cmd 命令行并启动 Msconfig.exe 程序。 总结 在 Java 中,我们可以使用 `Desktop` 类和 `...
接下来,我们通过一个实例来演示如何使用易语言调用大漠插件进行网页抓取: 假设大漠插件有一个函数"DmHttpGet"用于HTTP GET请求,我们可以编写如下代码: ```易语言 .声明 “DmHttpGet”, 整数型, 字符型, 整数型,...
例如,当Lua脚本执行失败时,`lua_pcall`会返回一个错误代码,需要根据这个代码进行相应的错误处理。 6. **性能优化**:虽然Lua可以提供快速的开发,但频繁的Java-Lua交互可能会影响性能。因此,对于性能敏感的操作...
首先,创建一个`QMediaPlayer`对象,然后设置视频文件的URL,最后调用`play()`方法开始播放: ```cpp QMediaPlayer *player = new QMediaPlayer; player->setMedia(QUrl::fromLocalFile("/path/to/recorded/video....
这将生成一个服务接口和服务实现类,其中包含了调用Web服务的方法。 3. 编写Java代码:实例化生成的服务实现类,调用其方法发起Web服务请求。注意设置SOAPAction头,因为这是.NET ASMX Web服务识别操作的关键。如果...
例如,如果你的Web Service有一个名为`GetExchangeRate`的方法,你可以这样调用: ```delphi var WebServiceProxy: IWebService; // 假设这是Delphi生成的代理接口 Rate: Double; begin WebServiceProxy := ...
在C++项目中,创建一个动态链接库(DLL)。定义两个函数,例如加法和减法函数。在C++中,函数声明为 extern "C" 以避免C++的名称修饰,确保C#可以正确识别: ```cpp extern "C" __declspec(dllexport) int Add(int a...
例如,我们可以创建一个`LogAttribute`,在方法上应用这个特性,以便在方法执行前后记录日志。下面是一个简单的示例: ```csharp [AttributeUsage(AttributeTargets.Method)] public class LogAttribute : ...
例如,你可以创建一个VideoOutput元素来显示视频,设置MediaPlayer来管理播放控制,如播放、暂停、快进、后退等。 6. **高级功能**:除了基本播放控制,你还可以实现更复杂的特性,比如字幕同步、音轨选择、流媒体...
matlab子函数调用方法说明-子函数调用.pdf 今天看了一下matlab子函数的调用,发现这个资料比较好,说的比较清楚,和大家共享一下。 子函数调用.pdf 子函数调用方法
例如,如果WebService有一个名为`GetWeather`的方法,可以这样调用:`Dim result As String = myWebService.GetWeather(city)` 4. **处理结果**:WebService调用完成后,返回的数据可以通过变量接收并进行后续处理...