qq_33189393 2021-08-21 14:57 采纳率: 0%
浏览 328

c# 调用DLL StringBuilder 乱码


C++中的代码 定义了一个iReadIdentityCard 供C# 调用
#define DL1_API extern "C" _declspec(dllexport)
#include "dl1.h"
#include <cstring>
  
int iReadIdentityCard(char *pOutInfo, char *pErrMsg){
 
    char *B = "姓名|男|汉族|1988-10-23|地址|513029198810230011|发行机关|20991010|20991010|adasdadsadadsa|";
    strcpy(pOutInfo, B);
    return 0;
}
//---------------------============
c# 调用
using System;
using System.Text;
using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
    class Class1
    {
        [DllImport("SC_ID.dll", EntryPoint = "iReadIdentityCard", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)]
        public static extern int iReadIdentityCard(StringBuilder pOutInfo, StringBuilder pErrMsg);
    }
}



namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            StringBuilder a=new StringBuilder(1024);
            StringBuilder b=new StringBuilder();
            int x = Class1.iReadIdentityCard(a, b);
              
             Console.WriteLine(x+">>"+a+">>");
             Console.ReadKey();
        }
    }
}

输出 的a 是乱码

  • 写回答

2条回答 默认 最新

报告相同问题?

问题事件

  • 创建了问题 8月21日

悬赏问题

  • ¥15 QTableWidget重绘程序崩溃
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding