首页 > 编程语言 >c++ 在项目中创建DLL,并调用

c++ 在项目中创建DLL,并调用

时间:2022-08-29 14:58:22浏览次数:83  
标签:文件 调用 void c++ dll cpp Configuration DLL

创建DLL分为两种方法,先介绍第一种

一、创建DLL

(1)

// dll.h
#pragma once
//dll.h
#ifndef DLL_H_
#define DLL_H_

void printhello();
void callPython();
extern "C" _declspec(dllexport) void start();
#endif
//dll.cpp
#pragma once
#include <iostream>
#include <Python.h>

using namespace std;

void printhello() {
	cout << "hello c++ dll !" << endl;
}


void callPython() {
	Py_Initialize();
	if (!Py_IsInitialized()) PyErr_Print();
	PyRun_SimpleString("import sys");
	PyRun_SimpleString("sys.path.append('D:\\CodeDemo')");
	PyObject* pModule = NULL;
	PyObject* pFunc = NULL;
	PyObject* pDict = NULL;
	PyObject* pKey = NULL;
	PyObject* pSubDict = NULL;
	if (!(pModule = PyImport_ImportModule("hellopython"))) PyErr_Print();
	if (!(pFunc = PyObject_GetAttrString(pModule, "hellopython"))) PyErr_Print();
	PyObject_CallObject(pFunc, NULL);
}

extern "C" _declspec(dllexport)void start()
{
	printhello();
	callPython();
}


Configuration Properties-> General -> Configuration Type 改为dll。


Configuration Properties-> Linker-> General -> output file 按图修改。

然后Build->build soultion, 就可以在debug或者release目录下看到生成的DLL 文件

(2) 待补充

二、使用DLL文件

参考这篇文章:https://docs.microsoft.com/zh-cn/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=msvc-170

分为四步:
(1)
指到要引用的头文件路径。

(2)
输入链接中使用的lib文件

(3)
这是上一步lib文件的路径,

(4)把dll文件放在调用project的exe目录下即可

标签:文件,调用,void,c++,dll,cpp,Configuration,DLL
From: https://www.cnblogs.com/Flashcc/p/16635865.html

相关文章

  • C++ 多维数组的访问
    1.可以把一维数组想象成一排士兵,把二维数组想象成一个士兵方阵,把三维数组想象成多个士兵方阵。这样,当你要找其中的一个士兵时,你只要知道他在哪个方阵(从0、1、2中选择),在哪......
  • C/C++全国交通咨询模拟系统
    C/C++全国交通咨询模拟系统全国交通咨询模拟【问题描述】处于对不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客......
  • C++【多线程编程】之【初识线程创建】
    1.线程创建函数调用pthread_create(句柄、参数、函数入口,函数入口的实参)intpthread_create(....)cppthread类:thread类的创建方法比较简便。但也有很多问题需要考虑......
  • 【c++】线程同步改错题 (互斥体)
     题目:#include<iostream>#include<windows.h>#include<tchar.h>//我想使用线程,让线程按我制定?的方案执行,但是总失败//起床-》吃饭-》工作-》回家-》起床HA......
  • ERROR: <bits/stdc++.h>, 'cstdalign' file not found, running C++17
    Modified 1year,1monthagoViewed 9ktimes4I'mtryingtorunapieceofcodein VisualStudioCode,onmacOSCatalina.Thecode:#include<bi......
  • c++学习案例:猜数字游戏
    最近在学习C++,遇到了一个案例:猜数字游戏案例要求:系统生成一个范围在1-100的随机整数,用户有5次猜数字的机会,当用户猜的数字大于或小于生成的值时进行提示,5次没猜对则失败,......
  • C++中 sort()和priority_queue()中的自定义比较
    C++sort/priority_queue自定义比较sort/priority_queue的自定义比较是有区别的:sort是自定义函数;priority_queue则是自定义结构体,结构体里面重载()实现自定义比较......
  • C++ 性能小测 1 二维数组的遍历效率
    C++性能小测1二维数组的遍历效率遍历二维数组时,常规思路是使用一个嵌套循环。一方面,由于CPU使用了分支预测技术,因此通常将循环次数最多循环的放在最内层。另一方面,由......
  • C++一些新的特性的理解(二)
    1C++11多线程thread重点:join和detach的使用场景thread构造函数参数绑定c函数绑定类函数线程封装基础类互斥锁mutexconditionnotify、waitlock_guard/unique_l......
  • C++【多线程编程】之【初识线程】
    1.用c++11的thread库还是用pthread库?至于选择哪种多线程编程方案,需要根据你的实际项目、运行平台、团队协作等因素来考虑。一般而言,如果使用的是Linux操作系统,那么可以......