问题是: 我有一个Qt应用程序,动态加载库并从该库执行一个函数(参见代码示例)
...
QLibrary library( "d:/Libs/MyLib.dll" );
if ( !library.load( ) )
qDebug( ) << library.errorString( );
if ( library.load( ) )
qDebug( ) << "library loaded";
typedef void ( *StartPrototype ) ( );
StartPrototype Start = ( StartPrototype ) library.resolve( "Start" );
if ( !Start )
{
qDebug() << "Start( ) failed!";
}
Start();
...
Start()函数的defenition加载dll看起来像:
extern "C" __declspec( dllexport ) void Start( )
{
ofstream myfile( "example.txt" );
if ( myfile.is_open( ) )
{
myfile << "This is a line.\n";
myfile.close( );
}
}
我的Qt应用程序位于 d:/Projects/MyApp.exe ,当我运行它时, example.txt 会出现在 d:/ Projects / example.txt (作为 MyApp.exe 的当前工作目录)
但我想将 example.txt 保存在我的dll所在的同一目录中( d:/Libs/example.txt )。 如果不直接指定路径,我可以这样做吗?我的意思是有没有办法为加载的lib及其中的所有函数指定工作目录?如何将dll路径设置为dll函数的当前工作目录(例如,创建文件)。感谢。