检测u盘的插入并返回盘符
以下是主程序:
#include <windows.h>
#pragma comment(linker,"/subsystem:windows ")
#include "stdafx.h"
#include "resource.h"
#include <Dbt.h>
#include <stdio.h>
int WINAPI Winmain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdshow ) ;
//int main(void);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//
TCHAR FirstDriveFromMask (ULONG unitmask);
LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CREATE:/*初始化*/
MessageBox(hWnd, "go!", "405 Studio", MB_OK);
break;
case WM_DEVICECHANGE:
if(wParam == DBT_DEVICEARRIVAL)//设备激活
{
PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)lParam;
PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;
char szMsg[80];
wsprintf (szMsg, "Drive %c: Media has arrived.\n",
FirstDriveFromMask(lpdbv ->dbcv_unitmask));
MessageBox (hWnd, szMsg, "WM_DEVICECHANGE", MB_OK);
}
break;
default:
return DefWindowProc (hWnd, message, wParam, lParam) ;
}
return 0;
}
//FirstDriveFromMask是一个用返回盘符(A,B,C ....)的简单函数
char FirstDriveFromMask (ULONG unitmask)
{
char i;
for (i = 0; i < 26; ++i)
{
if (unitmask & 0x1)
break;
unitmask = unitmask >> 1;
}
return (i + 'A');
}
调试时出现的错误是:
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/源1.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
请各位大虾看一下那里有错误,帮忙指点,小弟新手,在此拜谢啦!!