dll函数: 
CString _declspec(dllexport) AutoNumber(CString sTable, CString sFieldName, CString sCode, CString nStyle) 

AfxMessageBox(sTable); 
AfxMessageBox(sFieldName); 
AfxMessageBox(sCode); 
AfxMessageBox(nStyle); 
return sTable; 

ASP.NET调用 
string strdd; 
strdd=DLLClass.AutoNumber("de","id","n","2"); 运行之后是显示的值是这样的. 
id,n,2,乱码 
最后是程序崩溃... 
de怎么没了? 
请问是怎么回事? 

解决方案 »

  1.   

    给.net调用的DLL定义参数时,不要使用MFC中的类,这会出现封送问题。
    应改下VC中的参数定义:如:
    void _declspec(dllexport) AutoNumber(char* sTable, char* sFieldName, char* sCode, char* nStyle, char* outValue) c#: void AutoNumber(string sTable, string sFieldName, string  sCode, string nStyle, StringBuilder outValue)