C++生成DLL给C#调用

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

2、添加头文件 test.h

1
2
3
4
5
6
7
8
9
10
#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#项目里如下

1
2
3
4
5
6
7
8
9
10
11
12
[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);
 
  }

  

  

posted @   dongzhaosheng73  阅读(518)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2021-11-05 Gradle常用的命令
点击右上角即可分享
微信分享提示