添加导出文件头

This commit is contained in:
DevWiki 2023-12-18 20:25:30 +08:00
parent 2e4e55b4d3
commit 29c109aeee
16 changed files with 38 additions and 37 deletions

View File

@ -1,6 +1,6 @@
#pragma once #pragma once
enum AudioDeviceType enum WINDEVICE_API AudioDeviceType
{ {
Render, Render,
Capture Capture

View File

@ -2,7 +2,7 @@
#include <Mmdeviceapi.h> #include <Mmdeviceapi.h>
class AudioManager class WINDEVICE_API AudioManager
{ {
public: public:
AudioManager(); AudioManager();

View File

@ -4,7 +4,7 @@
#include <vector> #include <vector>
namespace WinDevice { namespace WinDevice {
struct OsInfo { struct WINDEVICE_API OsInfo {
// 操作系统名称 // 操作系统名称
std::string name; std::string name;
unsigned long majorVersion; unsigned long majorVersion;
@ -14,12 +14,12 @@ namespace WinDevice {
int64_t totalMemory; int64_t totalMemory;
}; };
struct CpuInfo { struct WINDEVICE_API CpuInfo {
std::string name; std::string name;
int coreCout; int coreCout;
}; };
struct GpuInfo { struct WINDEVICE_API GpuInfo {
std::string name; std::string name;
/** /**
* \brief Id * \brief Id
@ -34,14 +34,14 @@ namespace WinDevice {
size_t vram; size_t vram;
}; };
struct DisplayMonitorInfo { struct WINDEVICE_API DisplayMonitorInfo {
std::shared_ptr<HMONITOR> monitor; std::shared_ptr<HMONITOR> monitor;
std::string name; std::string name;
long width; long width;
long height; long height;
}; };
struct UserDeviceInfo { struct WINDEVICE_API UserDeviceInfo {
std::shared_ptr<CpuInfo> cpu; std::shared_ptr<CpuInfo> cpu;
std::shared_ptr<OsInfo> os; std::shared_ptr<OsInfo> os;
std::shared_ptr<std::vector<GpuInfo>> gpu; std::shared_ptr<std::vector<GpuInfo>> gpu;

View File

@ -6,7 +6,7 @@
namespace WinDevice namespace WinDevice
{ {
class WinDeviceManager { class WINDEVICE_API WinDeviceManager {
public: public:
WinDeviceManager(); WinDeviceManager();
~WinDeviceManager(); ~WinDeviceManager();

7
WinDevice/Export.h Normal file
View File

@ -0,0 +1,7 @@
#pragma once
#ifdef WINDEVICE_EXPORTS
#define WINDEVICE_API __declspec(dllexport)
#else
#define WINDEVICE_API __declspec(dllimport)
#endif

View File

@ -1,7 +1,8 @@
#pragma once #pragma once
#include "Export.h"
#include <string> #include <string>
class CmdUtil class WINDEVICE_API CmdUtil
{ {
public: public:
static std::string ExecuteCommand(const std::string& command); static std::string ExecuteCommand(const std::string& command);

View File

@ -1,4 +1,5 @@
#pragma once #pragma once
#include "Export.h"
#include "spdlog/spdlog.h" #include "spdlog/spdlog.h"
enum LogLevel : int enum LogLevel : int

View File

@ -1,21 +1,21 @@
#ifndef STRING_UTIL_H #ifndef STRING_UTIL_H
#define STRING_UTIL_H #define STRING_UTIL_H
#include "Export.h"
#include <string> #include <string>
#include <locale> #include <locale>
#include <codecvt> #include <codecvt>
template<typename To, typename From> template<typename To, typename From>
To Convert(const From& input) { WINDEVICE_API To Convert(const From& input) {
std::wstring_convert<std::codecvt_utf8<typename From::value_type>, typename From::value_type> converter; std::wstring_convert<std::codecvt_utf8<typename From::value_type>, typename From::value_type> converter;
return converter.to_bytes(input); return converter.to_bytes(input);
} }
inline std::string Wstring2String(const std::wstring& input) { WINDEVICE_API inline std::string Wstring2String(const std::wstring& input) {
return Convert<std::string>(input); return Convert<std::string>(input);
} }
inline std::string Wchar2String(const WCHAR* input) { WINDEVICE_API inline std::string Wchar2String(const WCHAR* input) {
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter; std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
return converter.to_bytes(input); return converter.to_bytes(input);
} }

View File

@ -1,9 +1,9 @@
#pragma once #pragma once
#include "Export.h"
#pragma comment(lib, "IPHLPAPI.lib") #pragma comment(lib, "IPHLPAPI.lib")
#pragma comment(lib, "wbemuuid.lib") #pragma comment(lib, "wbemuuid.lib")
class SysInfoUtil class WINDEVICE_API SysInfoUtil
{ {
public: public:
void GetMacByGetAdaptersInfo(char* outMAC) const; void GetMacByGetAdaptersInfo(char* outMAC) const;

View File

@ -1,7 +1,6 @@
#include "TimeUtil.h" #include "TimeUtil.h"
#include "spdlog/spdlog.h" #include "spdlog/spdlog.h"
template <typename Func> template <typename Func>
void TimeUtil<Func>::CalExecuteTime(Func func) void TimeUtil<Func>::CalExecuteTime(Func func)
{ {

View File

@ -1,7 +1,8 @@
#pragma once #pragma once
#include "Export.h"
template <typename Func> template <typename Func>
class TimeUtil class WINDEVICE_API TimeUtil
{ {
public: public:
static void CalExecuteTime(Func func); static void CalExecuteTime(Func func);

View File

@ -1,10 +1,11 @@
#pragma once #pragma once
#include "stdafx.h"
#include <vector> #include <vector>
#include <map> #include <map>
#include <Mmdeviceapi.h> #include <Mmdeviceapi.h>
class ScreenManager class WINDEVICE_API ScreenManager
{ {
public: public:
ScreenManager(); ScreenManager();

View File

@ -1,5 +1,6 @@
// WinDevice.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // WinDevice.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
// //
#ifdef _DEBUG
#include <stdafx.h> #include <stdafx.h>
#include <chrono> #include <chrono>
#include <iostream> #include <iostream>
@ -28,14 +29,4 @@ int main()
getchar(); getchar();
return 0; return 0;
} }
#endif
// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单
// 入门使用技巧:
// 1. 使用解决方案资源管理器窗口添加/管理文件
// 2. 使用团队资源管理器窗口连接到源代码管理
// 3. 使用输出窗口查看生成输出和其他消息
// 4. 使用错误列表窗口查看错误
// 5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
// 6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件

View File

@ -1 +1 @@
LIBRARY LIBRARY WinDevice

View File

@ -33,7 +33,7 @@
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
@ -46,7 +46,7 @@
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
@ -109,7 +109,7 @@
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WINDEVICE_EXPORTS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(ProjectDir)include\third_lib\;.</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ProjectDir)include\third_lib\;.</AdditionalIncludeDirectories>
</ClCompile> </ClCompile>
@ -143,7 +143,7 @@
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WINDEVICE_EXPORTS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(ProjectDir)include\third_lib\;.</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ProjectDir)include\third_lib\;.</AdditionalIncludeDirectories>
</ClCompile> </ClCompile>
@ -171,6 +171,7 @@
<ClInclude Include="Audio\AudioManager.h" /> <ClInclude Include="Audio\AudioManager.h" />
<ClInclude Include="Device\UserDeviceInfo.h" /> <ClInclude Include="Device\UserDeviceInfo.h" />
<ClInclude Include="Device\WinDeviceManager.h" /> <ClInclude Include="Device\WinDeviceManager.h" />
<ClInclude Include="Export.h" />
<ClInclude Include="stdafx.h" /> <ClInclude Include="stdafx.h" />
<ClInclude Include="Utils\CmdUtil.h" /> <ClInclude Include="Utils\CmdUtil.h" />
<ClInclude Include="Utils\Log.h" /> <ClInclude Include="Utils\Log.h" />

View File

@ -1,5 +1,5 @@
 #pragma once
#pragma once #include "Export.h"
#include <windows.h> #include <windows.h>
#include <winerror.h> #include <winerror.h>
@ -24,4 +24,3 @@
#include "sysinfoapi.h" #include "sysinfoapi.h"