使用 Visual Studio 2010时遇到的问题

发布时间:2011-10-18 19:37:56   来源:文档文库   
字号:

1. 问题:

出现错误 error C4335: 检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNI

格式;

解答:

   这个错误的意思是这个文件被检测出来是MAC OS格式,请转换成DOS或者UNIX文件格式。

具体解决方法:将文本内容复制到Word,之后再创建一个TXT文件将Word的内容复制出来,再将这个TXT文件替换原来的文件

2. 问题:

使用多媒体功能呼叫,无法通过PlaySound 函式

解答:

转载出处http://hi.baidu.com/lyqf_365

一般是:LNK2019: 无法解析的外部符号 __imp__PlaySoundW@12,该符号在函数 _WndProc@16 中被引用,下面附下解决方案:

-----------------------------------------------------------------------------------------------

1.新建工程/项目,

输入项目名称建好项目。建立一个新的源文件,类型是C++的,但后缀要用.c的。

===============以下为源代码======================================

/*------------------------------------------------------------

   HELLOWIN.C -- Displays "Hello, Windows 98!" in client area

                 (c) Charles Petzold, 1998

------------------------------------------------------------*/

#pragma     comment(lib,"winmm.lib")

#include

#using

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,

                    PSTR szCmdLine, int iCmdShow)

{

     static TCHAR szAppName[] = TEXT ("HelloWin") ;

     HWND         hwnd ;

     MSG          msg ;

     WNDCLASS     wndclass ;

//CS_HREDRAW | CS_VREDRAW 格式在窗口大小改变后,就把整个窗口显示内容当成无效。然后,窗口消息处理程序将收到一条WM_PAINT消息。

     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;//0;调试

     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 ("This program requires Windows NT!"),

                      szAppName, MB_ICONERROR) ;

          return 0 ;

     }

    

     hwnd = CreateWindow (szAppName,                  // window class name

                          TEXT ("The Hello Program"), // window caption

                          WS_OVERLAPPEDWINDOW,        // window style

                          CW_USEDEFAULT,              // initial x position

                          CW_USEDEFAULT,              // initial y position

                          CW_USEDEFAULT,              // initial x size

                          CW_USEDEFAULT,              // initial y size

                          NULL,                       // parent window handle

                          NULL,                       // window menu handle

                          hInstance,                  // program instance handle

                          NULL) ;                     // creation parameters

    

     ShowWindow (hwnd, iCmdShow) ;

     UpdateWindow (hwnd) ;

//GetMessage对于除了WM_QUIT之外的从消息队列中取出的所有消息都传回非0值。

//而当GetMessage得到一个WM_QUIT消息时,它传回0。    

     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 ("Yom.wav"), NULL, SND_FILENAME | SND_ASYNC) ;

          return 0 ;

         

     case WM_PAINT:

          hdc = BeginPaint (hwnd, &ps) ;

         

          GetClientRect (hwnd, &rect) ;

         

          DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,

                    DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;

         

          EndPaint (hwnd, &ps) ;

          return 0 ;

         

     case WM_DESTROY://该消息是使用者单击Close按钮或者在程序的系统菜单上选择 Close时发生的

          PostQuitMessage (0) ;//该函数在程序的消息队列中插入一个WM_QUIT消息

          return 0 ;

     }

     return DefWindowProc (hwnd, message, wParam, lParam) ;

}

=================================以上为源代码======================================

保存后,运行即可。

当然了,这个不是书上的代码了,书上的代码过去久远,是要修改的。而且有的地方不全。

要注意到#pragma comment(lib,"winmm.lib")这一行,这一行是在许多的代码里不给出的,这也是大多数人不能通过连接的原因,就是winmm没有引用进来。不用这行就应该在你的项目上右键,点属性

另外,如果你建的是空项目,那么,一般用到windows的窗口生成的时候会少odbc32.lib和odbccp32.lib同上面的加上就可以了。winmm只是支持媒体播放的一个lib,当然了,有时用不到的。

本文来源:https://www.2haoxitong.net/k/doc/508b0b35a32d7375a41780ab.html

《使用 Visual Studio 2010时遇到的问题.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式