程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c-關於VB.net調用C生成的dll,遇到的比字符集不匹配還糾結的問題

c-關於VB.net調用C生成的dll,遇到的比字符集不匹配還糾結的問題

編輯:編程綜合問答
關於VB.net調用C生成的dll,遇到的比字符集不匹配還糾結的問題

升級項目。從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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved