Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual c++ 如何从VC++;?_Visual C++_Dll_Resource Dll - Fatal编程技术网

Visual c++ 如何从VC++;?

Visual c++ 如何从VC++;?,visual-c++,dll,resource-dll,Visual C++,Dll,Resource Dll,我正在用VC++编写一个DLL,我需要使用外部文本文件。我现在有这样的事情: ifstream file; string line; file.open("C:\\Users\\Me\\Desktop\\textfile.txt"); getline(file,line); file.close(); 我知道我可以在参考资料中找到这个文件,对吗 我通过转到“资源视图”->“添加资源”->“导入”添加了文本文件。我选择了我的文本文件并创建了自定义资源类型 如何访问此文件以使用与上述代

我正在用VC++编写一个DLL,我需要使用外部文本文件。我现在有这样的事情:

 ifstream file;
 string line;

 file.open("C:\\Users\\Me\\Desktop\\textfile.txt");
 getline(file,line);
 file.close();
我知道我可以在参考资料中找到这个文件,对吗

我通过转到“资源视图”->“添加资源”->“导入”添加了文本文件。我选择了我的文本文件并创建了自定义资源类型

如何访问此文件以使用与上述代码类似的功能?我有资源,但我该怎么做呢? 我也可以编辑我的资源文本文件吗?

假设:

  • 资源类型为“文本”
  • 资源ID是MY_resource_ID(这将是resource.h中的常量)
  • 您已将EXE或DLL(无论哪个包含资源)的hInstance存储到m_hInstance中
将资源加载到内存并获取指向它的指针的操作如下:

HRSRC hResource = FindResource(m_hInstance, MAKEINTRESOURCE(MY_RESOURCE_ID), L"TEXT");

if (hResource)
{
    HGLOBAL hLoadedResource = LoadResource(m_hInstance, hResource);

    if (hLoadedResource)
    {
        LPVOID pLockedResource = LockResource(hLoadedResource);

        if (pLockedResource)
        {
            DWORD dwResourceSize = SizeofResource(m_hInstance, hResource);

            if (0 != dwResourceSize)
            {
                 // Use pLockedResource and dwResourceSize however you want
            }
        }
    }
}
注意:您不必卸载或解锁32位或64位Windows版本上的资源,如果再次获取资源,则不会泄漏内存;你总是得到同样的记忆


有关更新资源的信息,请参阅。

谢谢!这就是我要找的。我正在使用ATL,所以我将
\u AtlBaseModule.m\u hInst
放在
hInstance
位置,它运行良好。我想知道如何像文件或流一样使用这段内存。如果你知道,请在这里回答:@CichyK24流是在IStream中还是一种不同的流?哦,像一个ifstream;我不知道,抱歉,又来了!我对更新资源没有什么兴趣。你能看一下吗?亲爱的雷欧,在类似的情况下,我怎么才能得到C++代码中文件名的名字呢?