升級項目。從6.0到2012。
升級後出現調用dll中c的方法:
DLLEXPORT BOOL WINAPI InsUpdDel( LPSTR lpSqlStr, LPRTNINFO RtnInfo )
其中 LPSTR lpSqlStr 是_char × 類型,在API _winnt.h中定義:
winnt.h
// ANSI (Multi-byte Character) types
//
typedef Null_terminated CHAR *NPSTR, *LPSTR, *PSTR;
為傳入的sql,LPRTNINFO RtnInfo 是自己在頭文件中定義的構造體構造體:
typedef struct {
long ErrCode;
char ErrMsg[71];
} RTN_INFO;
typedef RTN_INFO* LPRTNINFO;
_當ErrMsg 傳入漢字時,報錯:傳遞給系統調用的數據區域太小。HERSULT:0x8007007A。
當lpSqlStr傳入漢字時,卻不會報錯。
求大神指點,這到底是怎麼一回事?
vb中如果要改,實在太麻煩,有沒有什麼能夠在VC下修改的方法?
如果是該vc,那麼就第二個參數也用LPSTR類型好了。再加一個int類型等做errorcode