读取一资源 ID为 IDR_WAV.
调用  FindResource()  是出问题...C/C++ code    LPSTR szResourceType = "BIN_DATA"; // 资源的类型 HRSRC hRes = FindResource(NULL, MAKEINTRESOURCE(nIDResource),szResourceType); // 查找资源句柄 //HRSRC hRes = FindResource(hInstance, MAKEINTRESOURCE(nIDResource),szResourceType); // 查找资源句柄
编译器是不报错的 
但是hRes在调试时提示 
unused:CX0030:ERROR : expression cannot be evaluated
FindResource()的第一个参数要怎么设置?原型
HRSRC FindResource(
    HMODULE hModule,
    LPCTSTR lpName,
    LPCTSTR lpType
);另外,我的资源是一个导入的 .wav音频,  ResourceType 是那样设置的吗  "BIN_DATA" ??发现CSDN上有不少人在问FindResource(),看了半了也没有看出什么来。。
有人做过或者懂的话,还望指点?? 

解决方案 »

  1.   

    参考下面的
    DWORD dwWritten = 0;
    HRSRC hServiceExecutableRes = NULL;
    HMODULE hInstance = ::GetModuleHandle(NULL);// Find the binary file in resources
    #ifdef _DEBUG
    hServiceExecutableRes = ::FindResource( 
    hInstance, 
    MAKEINTRESOURCE(IDR_DEBUG_DLL), 
    _T("DEBUG_DLL")
    );
    #else
    hServiceExecutableRes = ::FindResource( 
    hInstance, 
    MAKEINTRESOURCE(IDR_RELEASE_DLL), 
    _T("RELEASE_DLL")
    );
    #endif
    HGLOBAL hServiceExecutable = ::LoadResource( 
    hInstance, 
    hServiceExecutableRes
    );

    LPVOID pServiceExecutable = ::LockResource(hServiceExecutable);
      

  2.   

    http://topic.csdn.net/t/20010216/09/70292.html
      

  3.   

    To oyljerry:
    这个我有看过了,
    也试了他的方法,结果不行 还是返回NUll而且 hRes在调试时总是 unused ...十分困惑 ./还有这个FindResource()的第一个参数的使用一说是的  NULL  一说是 hInstance  =GetModuleHandle()这两个有什么区别吗??
      

  4.   

    第一个参数是资源所在的模块句柄,为NULL默认为当前模块(如果你的资源放在加载的DLL中,就要用对应的模块句柄了)。
      

  5.   


    那第三个参数的 选取有什么要求吗 ??还是说 我给 SourceName 随便初始化一个字符串 ,都是可以的?是不是lpType   随着我导入的资源的不同(比如光标、比如图片、比如对话框...)而不同???