我想擺脫在VB DLL中的字符串,所以我做了一些代碼下面,如何從dll中獲取沒有垃圾的字符串?
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <tchar.h>
#include <atlconv.h>
#include <atlcoll.h>
#include <assert.h>
#include <atlbase.h>
using namespace std;
double _stdcall pll_dll(double* datain0, double* datain1, double* dataout0, double* dataout1, BSTR * str, int* str_len)
{
char buff[128];
char * str0;
char str1[128];
*dataout0 = *datain0 + 20;
*dataout1 = *datain1 + 30;
*str_len = 30;
str0 = " Nice ";
sprintf(buff, "Hi %s \n", str0);
strcpy(str1, buff);
char* p = str1;
SysReAllocString(str, (OLECHAR*)p);
return 0;
}
但是,尤其是,在這種情況下,當我證明S,我有一個包含垃圾數據的字符串,如下所示。
那麼我怎樣才能得到沒有這個垃圾數據的字符串?
:S:嗨尼斯儆儆儆儆儆儆儆儆좄*:字符串