C++ 将sf::Texture存储在dll中的静态变量中
实际上,我使用dll将一些方法导出到非托管应用程序 我需要为sf::Texture创建一个静态变量,但是当我尝试时,dll没有正确初始化 我只是加上这一行:C++ 将sf::Texture存储在dll中的静态变量中,c++,sfml,C++,Sfml,实际上,我使用dll将一些方法导出到非托管应用程序 我需要为sf::Texture创建一个静态变量,但是当我尝试时,dll没有正确初始化 我只是加上这一行: static Texture test3; 和dll停止。关于“静态”作为限定词的效果,这些在其他答案中有介绍。如果您想使用“static”,那么您应该知道“static”在做什么 我不知道您试图实现什么,但我认为您可能希望通过DLL中定义的函数访问该值 举例来说 source.cpp static Texture *myInterna
static Texture test3;
和dll停止。关于“静态”作为限定词的效果,这些在其他答案中有介绍。如果您想使用“static”,那么您应该知道“static”在做什么
我不知道您试图实现什么,但我认为您可能希望通过DLL中定义的函数访问该值
举例来说
source.cpp
static Texture *myInternalTexture;
void InitInternalTexture(){
myInternalTexture = new Texture( blah);
}
Texture *GetInternalTexture(){
return myInternalTexture;
}
void ReleaseInternalTexture(){
delete myInternalTexture;
}
根据您的使用情况,您可能更喜欢访问纹理的引用或进行复制,我不知道您需要做什么。如果你可以很容易地修改上面的代码来处理你的纹理类型。关于“静态”作为限定词的效果,这些都在其他答案中介绍。如果您想使用“static”,那么您应该知道“static”在做什么
我不知道您试图实现什么,但我认为您可能希望通过DLL中定义的函数访问该值
举例来说
source.cpp
static Texture *myInternalTexture;
void InitInternalTexture(){
myInternalTexture = new Texture( blah);
}
Texture *GetInternalTexture(){
return myInternalTexture;
}
void ReleaseInternalTexture(){
delete myInternalTexture;
}
根据您的使用情况,您可能更喜欢访问纹理的引用或进行复制,我不知道您需要做什么。以防您可以轻松地修改上面的代码以处理您的纹理类型。不清楚DLL停止的含义。你有没有受到严重的撞击?你链接失败了吗?编译器会抱怨注释吗?您的应用程序是否在一个非常精确的点上崩溃?(我认为使用纹理时会崩溃)不清楚DLL停止的含义。你有没有受到严重的撞击?你链接失败了吗?编译器会抱怨注释吗?您的应用程序是否在一个非常精确的点上崩溃?(我认为它在使用纹理时会崩溃)