我用CMake创建了一个C++ DLL。C++项目由以下文件组成:
- src/setup.cpp
- src/setup.h
- CMakeLists.txt
setup.cpp如下:
#include "setup.h"
int myFunction() {
return 42;
}
setup.h如下所示:
#ifndef SETUP_DLL
#define SETUP_DLL
int myFunction();
#endif
CMakeLists.txt如下所示:
cmake_minimum_required(VERSION 3.10)
# Define the project and supported versions
project(MyLibrary VERSION 1.0.0)
# Add options for compiling the library
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# Add the library sources
add_library(MyLibrary SHARED src/setup.h src/setup.cpp)
# Specify the directory to search for headers
target_include_directories(MyLibrary PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
# Specify the output name
set_target_properties(MyLibrary PROPERTIES OUTPUT_NAME "MyLibrary_${PROJECT_VERSION}")
# Specify the output path
set_target_properties(MyLibrary PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/lib")
我现在试图将这个DLL导入到C#项目中。为此,我在Visual Studio 2019中右键单击项目,选择“添加”,“引用”,“浏览”,然后选择我创建的DLL文件。但是,我收到错误消息Could not add reference to 'Path\to\file.dll'. Make sure the file is accessible and that the assembly or COM component is valid.
是什么原因导致了这个错误?如何在C#项目中成功添加对C++ DLL的引用?
1条答案
按热度按时间ckocjqey1#
Header添加了extern“C”__declspec(dllexport):
P/Invoke:C#调用C++ dll: