首页 > 编程语言 >C++生成DLL给C#调用

C++生成DLL给C#调用

时间:2022-11-05 16:56:41浏览次数:37  
标签:C# C++ DLL char str test out GetTextStr buff

1、添加C++动态链接库(DLL)

2、添加头文件 test.h

#ifndef TEST_H
#define TEST_H

// 添加要在此处预编译的标头
#include "framework.h"

#endif //TEST_H


extern "C" _declspec(dllexport) int  GetTxtStr(char* in_str, char* out_str);

2、添加cpp文件 test.cpp

int GetTextStr(char* in_str,char* out_str){
          char buff[1024];
          memset(buff, 0, sizeof(buff));
          char *test = "test"
           
           strcpy(instr,buff);
           strcat(buff,test2);
          
           strcpy(out_str,buff);

          return TRUE
           
}

3、在C#项目里如下

  [DllImport("test.dll", EntryPoint = "GetTextStr", CallingConvention = CallingConvention.Cdecl)]
    static extern int GetTextStr(string in_str, [MarshalAs(UnmanagedType.LPStr)] StringBuilder out_str);

    static void Main(string[] args)
    {
        StringBuilder str = StringBuilder();

        GetTextStr("123456", str);

        Console.WriteLine(str);

    }

  

  

标签:C#,C++,DLL,char,str,test,out,GetTextStr,buff
From: https://www.cnblogs.com/dongzhaosheng/p/16860536.html

相关文章

  • SpringMVC源码-getHandler
    DispatcherServlet.getHandler(HttpServletRequestrequest)protectedHandlerExecutionChaingetHandler(HttpServletRequestrequest)throwsException{ if(this.ha......
  • SpringMvc——拦截器学习
    1、拦截器(Interceptor)是一种动态拦截方法调用的机制作用:在指定的方法调用前后执行预先设定后的的代码阻止原始方法的执行2、拦截器与过滤器区别归属不同:Filter属于Servle......
  • sandom AK IMO & IOI & IBO & IChO & IPhO
    sandom肽聚辣!!!摸摸摸摸摸摸摸摸摸摸%%%%%%%%%%%%%%......
  • 关于GC
    1.内存处理的判定指标:内存效率、内存利用率、内存整齐度;也是各种内存回收算法的指标 2.对象是否有存活必要的判定2.1引用计数。因为存在循环引用的问题(A引用B、B引用A......
  • CPU缓存
    CPU缓存是什么CPU缓存(CacheMemory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。CPU高速缓存的出现主要是为了解决CPU运算速度......
  • SpringMVC 原理
    1.原理图(实现代表自动装配完成,虚线我们需要实现的地方)   2.实现步骤  3.实现  HelloController.javapackagecom.zxy.contorller;importorg.springfr......
  • logback.xml
    <?xmlversion="1.0"encoding="UTF-8"?><configurationscan="true"scanPeriod="60seconds"debug="false"><!--日志存放路径--><propertyname="log.pat......
  • 解决在idea中使用springMvc向mysql写入中文数据乱码
    相关设置:1、idea编码格式设置:   2、MySQL的相关编码格式设置:修改前编码:无用操作:之前通过命令行修改编码格式:setcharacter_set_client=utf8......
  • 「题集」Public NOIP Round #2 提高
    简单写一写题解,T3和T4还是值得一记的。恰钱注意到,\(10^9\)范围内的好数明显数量不多。我们甚至可以直接算出来:\[\sum_{k=1}^{14}\binom{30-(k+1)}{k-1}\]结合这个......
  • MBR10200FAC-ASEMI肖特基二极管MBR10200FAC
    编辑-ZMBR10200FAC在ITO-220AC封装里采用的1个芯片,其尺寸都是95MIL,是一款大功率肖特基二极管。MBR10200FAC的浪涌电流Ifsm为150A,漏电流(Ir)为0.05mA,其工作时耐温度范围为-65......