DLL调用后我的程序不想在文本文件中写入

问题描述 投票:0回答:1

我有一个公开函数的DLL:

extern "C" __declspec( dllimport ) __stdcall int EP_ProtectedStringByKey( char* Key, char* Left, int Len);

C ++文件的标题:

typedef int (*GetString)(const char *Key, const char *Str, int Len);

使用此代码,一切正常。程序在“ example.txt”中写应该写的内容。

GetString _GetSTR;
int longueur;
string my_string;
const char *pmy_string; 
HINSTANCE hInstLibrary = LoadLibrary("my.dll");
_GetSTR = (GetString)GetProcAddress(hInstLibrary, "EP_ProtectedStringByKey");
ofstream myfile("example.txt");
longueur = _GetSTR("key_421", NULL, 0);
cout << "Taille : " << longueur << endl;
myfile << "Size : " << longueur << endl;
my_string.resize(longueur); // resizing the string
pmy_string = my_string.c_str(); // Pointer to pmy_string


// ---- _GetSTR("key_421", pmy_string, longueur); ---- 

myfile << "Another line.\n";
myfile.close();
FreeLibrary(hInstLibrary);

现在,如果我添加此行代码:

_GetSTR("key_421", pmy_string, longueur);

我的数据可以通过:]在屏幕上很好地打印。

cout << "Data : " << pmy_string << endl;

但是NOTHING

不再写入文件“ example.txt(不再写入“另一行”)。这就像在充满了[[my_string变量之后,我的程序拒绝写文件,但奇怪的是它在屏幕上显示pmy_string的内容。我想我做错了,但我不知道是什么...

感谢您的帮助,

我有一个公开函数的DLL:extern“ C” __declspec(dllimport)__stdcall int EP_ProtectedStringByKey(char * Key,char * Left,int Len); C ++文件的头:typedef int(* GetString)(...

c++ pointers dll cout ofstream
1个回答
0
投票
为了避免两个未定义的行为,我需要:
© www.soinside.com 2019 - 2024. All rights reserved.