<legend id='8tXkb'><style id='8tXkb'><dir id='8tXkb'><q id='8tXkb'></q></dir></style></legend>
<tfoot id='8tXkb'></tfoot>

        • <bdo id='8tXkb'></bdo><ul id='8tXkb'></ul>

        <small id='8tXkb'></small><noframes id='8tXkb'>

      1. <i id='8tXkb'><tr id='8tXkb'><dt id='8tXkb'><q id='8tXkb'><span id='8tXkb'><b id='8tXkb'><form id='8tXkb'><ins id='8tXkb'></ins><ul id='8tXkb'></ul><sub id='8tXkb'></sub></form><legend id='8tXkb'></legend><bdo id='8tXkb'><pre id='8tXkb'><center id='8tXkb'></center></pre></bdo></b><th id='8tXkb'></th></span></q></dt></tr></i><div id='8tXkb'><tfoot id='8tXkb'></tfoot><dl id='8tXkb'><fieldset id='8tXkb'></fieldset></dl></div>
      2. 无法将参数 1 从“char *"转换为“LPCWSTR"

        时间:2023-09-17
          <bdo id='78jNx'></bdo><ul id='78jNx'></ul>
          <tfoot id='78jNx'></tfoot>

              1. <small id='78jNx'></small><noframes id='78jNx'>

              2. <i id='78jNx'><tr id='78jNx'><dt id='78jNx'><q id='78jNx'><span id='78jNx'><b id='78jNx'><form id='78jNx'><ins id='78jNx'></ins><ul id='78jNx'></ul><sub id='78jNx'></sub></form><legend id='78jNx'></legend><bdo id='78jNx'><pre id='78jNx'><center id='78jNx'></center></pre></bdo></b><th id='78jNx'></th></span></q></dt></tr></i><div id='78jNx'><tfoot id='78jNx'></tfoot><dl id='78jNx'><fieldset id='78jNx'></fieldset></dl></div>
                <legend id='78jNx'><style id='78jNx'><dir id='78jNx'><q id='78jNx'></q></dir></style></legend>
                  <tbody id='78jNx'></tbody>
                • 本文介绍了无法将参数 1 从“char *"转换为“LPCWSTR"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我正在尝试加载 BMP 文件

                  Im trying to load a BMP file

                  AUX_RGBImageRec *LoadBMP(char *Filename)  // Loads A Bitmap Image
                  {
                      FILE *File=NULL;                      // File Handle
                  
                      if (!Filename)                        // Make Sure A Filename Was Given
                      {
                          return NULL;                      // If Not Return NULL
                      }
                  
                      File=fopen(Filename,"r");             // Check To See If The File Exists
                  
                      if (File)                             // Does The File Exist?
                      {
                          fclose(File);                     // Close The Handle
                          return auxDIBImageLoad(Filename); // Load The Bitmap And Return A Pointer
                      }
                  
                      return NULL;                          // If Load Failed Return NULL
                  }
                  

                  这来自一个例子,但我现在收到错误

                  this has come from an example however i'm now getting the error

                  错误 C2664:auxDIBImageLoadW":无法将参数 1 从char *"转换为LPCWSTR"

                  error C2664: 'auxDIBImageLoadW' : cannot convert parameter 1 from 'char *' to 'LPCWSTR'

                  我该如何纠正?

                  推荐答案

                  您正在编译应用程序,将字符集设置为 UNICODE(项目设置 -> 配置选项 -> 常规).Windows 头文件使用 #defines 将函数名称映射"到 nameA(对于多字节字符串)或 nameW(对于 unicode 字符串).

                  You're compiling your application with Character-Set set to UNICODE (Project Settings -> Configuration Options -> General). Windows header files use #defines to "map" function names to either nameA (for multi-byte strings) or nameW (for unicode strings).

                  这意味着在头文件的某处会有一个这样的#define

                  That means somewhere in a header file there will be a #define like this

                  #define auxDIBImageLoad auxDIBImageLoadW
                  

                  所以您实际上并不是在调用 auxDIBImageLoad(没有具有该名称的函数),而是在调用 auxDIBImageLoadW.而 auxDIBImageLoadW 需要一个 unicode 字符串(wchar_t const*).您正在传递一个多字节字符串 (char const*).

                  So you're not actually calling auxDIBImageLoad (there is no function with that name), you're calling auxDIBImageLoadW. And auxDIBImageLoadW expects a unicode string (wchar_t const*). You're passing a multi-byte string (char const*).

                  您可以执行以下操作之一

                  You can do one of the following

                  • 更改您的项目以使用多字节字符集(-> 项目设置)
                  • 通过将 auxDIBImageLoad 替换为 auxDIBImageLoadA
                  • 来显式调用该函数的多字节版本
                  • 更改您的 LoadBMP 函数以接受 unicode 字符串本身
                  • LoadBMP
                  • 中将字符串转换为unicode
                  • change your project to use multi-byte character set (-> project settings)
                  • explicitly call the multi-byte version of the function by replacing auxDIBImageLoad with auxDIBImageLoadA
                  • change your LoadBMP function to accept a unicode string itself
                  • convert the string to unicode inside LoadBMP

                  我建议更改 LoadBMP 以接受 unicode 字符串本身或直接调用 auxDIBImageLoadA(按此顺序).如果更改项目设置不会破坏很多其他代码,那么它可能没问题.我不会建议转换字符串,因为它是不必要的.直接调用auxDIBImageLoadA要容易得多,结果是一样的.

                  I'd recommend either changing LoadBMP to accept a unicode string itself or calling auxDIBImageLoadA directly (in that order). Changing the project settings might be OK if it doesn't break a lot of other code. I would not suggest converting the string though, since it's unnecessary. Calling auxDIBImageLoadA directly is far easier, and the result is the same.

                  这篇关于无法将参数 1 从“char *"转换为“LPCWSTR"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:检索现有着色器属性时,glGetAttribLocation 返回 - 下一篇:从 Windows 中的 OpenGL 窗口捕获视频

                  相关文章

                  最新文章

                • <tfoot id='9v0as'></tfoot>

                  <i id='9v0as'><tr id='9v0as'><dt id='9v0as'><q id='9v0as'><span id='9v0as'><b id='9v0as'><form id='9v0as'><ins id='9v0as'></ins><ul id='9v0as'></ul><sub id='9v0as'></sub></form><legend id='9v0as'></legend><bdo id='9v0as'><pre id='9v0as'><center id='9v0as'></center></pre></bdo></b><th id='9v0as'></th></span></q></dt></tr></i><div id='9v0as'><tfoot id='9v0as'></tfoot><dl id='9v0as'><fieldset id='9v0as'></fieldset></dl></div>

                  1. <small id='9v0as'></small><noframes id='9v0as'>

                    <legend id='9v0as'><style id='9v0as'><dir id='9v0as'><q id='9v0as'></q></dir></style></legend>

                      • <bdo id='9v0as'></bdo><ul id='9v0as'></ul>