我有一个公开函数的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)(...