问题描述
C#[DllImport(@"Request.dll",EntryPoint="SendRequest",CharSet=CharSet.Auto)]publicstaticexternintSendRequest(boolispost,Stringhttpurl,StringBuildersHeaderSend,StringBuildersHeaderReceive,StringBuildersMessage);stringt=SendRequest(false,"http://www.baidu.com",sb1,sb2,sb3).ToString();C++TESTCPPDLL_APIint__stdcallSendRequest(boolIsPost,LPCSTRurl2,OUTLPSTRpsHeaderSend,OUTLPSTRpsHeaderReceive,OUTLPSTRpsMessage){psHeaderSend=req.headerSend;//req是一个结构}C#里面的sb1,sb2,sb3.都是空,但在C++里面对应的变更都有值,请问C++里面如何使用OUT
解决方案
解决方案二:
strncpy(psHeaderSend,req.headerSend,psHeadser的最大长度);
解决方案三:
stringbuilder在使用之前有没有分配合适的空间?
解决方案四:
引用2楼xian_wwq的回复:
stringbuilder在使用之前有没有分配合适的空间?
有分配
解决方案五:
引用1楼Forty2的回复:
strncpy(psHeaderSend,req.headerSend,psHeadser的最大长度);
strncpy(psMessage,req.message,100);好像也不行
时间: 2024-09-29 07:13:17