C++、C#生成DLL入门教程

C#创建dll

IDE Microsoft Visual Studio2010

创建C#项目

在这里插入图片描述

运行项目

新建的项目属性是类库,项目右键 输出类型改为 windows应用程序,通过以下简单代码,F5直接运行
Console.WriteLine(“hahaha”) 类似java的system.out,直接在控制台输出语句

namespace ClassLibrary2test
{
    public class Class1
    {
       static void Main()
        {
            Console.WriteLine("hahaha");
        }
    }
}

在这里插入图片描述
在这里插入图片描述

生成C# dll

将输出类型改为“类库”,ctrl + alt + F7 即可生成dll ,一般在/bin/Debug目录下
在这里插入图片描述

源码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CSharpClassLibraryForJava
{
    public class Class1
    {
        static void Main()
        {
            Console.WriteLine("Hello C# ");
            Console.WriteLine(System.AppDomain.CurrentDomain.BaseDirectory);
            Console.WriteLine(getstr());
            Console.WriteLine(add(1,2));
        }

        public static string getstr()
        {
            String str = "hello,this is C#";
            return str;
        }

        public static int add(int x, int y)
        {
            return x + y;
        }
    }
}

常见问题

不包含适合于入口点的静态“Main”方法

检查 Main() 首字母是否写,main是否拼写错误
在这里插入图片描述

指定输出32位或64位

在这里插入图片描述

无法直接启动带有“类库输出类型”的项目

将输出类型改为“windows”应用程序
在这里插入图片描述

C++创建dll

工具 Microsoft Visual Studio2017

创建C++项目

文件-新建项目
在这里插入图片描述
目录结构,main 为主入口
在这里插入图片描述

源码


#include "pch.h"
#include <iostream>

using namespace std;

extern "C"  __declspec(dllexport)   int add(int x,int y);
extern "C"  __declspec(dllexport)   const char* getstr();
extern "C"  __declspec(dllexport)   char* getstr2();


int main()
{
    std::cout << "Hello World!\n"; 
	cout << add(5, 80) << endl;
	cout << getstr() << endl;
	cout << getstr2() << endl;
}

int add(int x, int y) {
	return x + y;
}

const char* getstr() {
	const char* chars = "123";
	return chars;
}


//乱码
char* getstr2() {
	char c[] = "456";
	return  c;

}

运行项目 测试所写代码

按F5 可以直接运行,运行成功如下(忽略最后一行乱码)
在这里插入图片描述

如果出现以下内容
在这里插入图片描述
请检查 项目名称-右键属性 配置类型是否为exe
在这里插入图片描述

生成C++ dll

将配置类型改为 dll

在这里插入图片描述
ctrl + alt + F7 即可获得dll
在这里插入图片描述
一般在debug目录下
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值