Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jlib
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
captainwong
jlib
Commits
4f3b52c6
Commit
4f3b52c6
authored
4 years ago
by
captainwong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add win32/monitor.h
parent
8059c57a
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
489 additions
and
0 deletions
+489
-0
monitor.h
jlib/win32/monitor.h
+284
-0
test.sln
test/test.sln
+12
-0
test_monitor.cpp
test/test_monitor/test_monitor.cpp
+13
-0
test_monitor.vcxproj
test/test_monitor/test_monitor.vcxproj
+149
-0
test_monitor.vcxproj.filters
test/test_monitor/test_monitor.vcxproj.filters
+27
-0
test_monitor.vcxproj.user
test/test_monitor/test_monitor.vcxproj.user
+4
-0
No files found.
jlib/win32/monitor.h
0 → 100644
View file @
4f3b52c6
#pragma once
#include <Windows.h>
#include <string>
#include <vector>
namespace
jlib
{
namespace
win32
{
struct
MonitorInfo
{
struct
Resolution
{
int
w
;
int
h
;
int
hz
;
bool
operator
==
(
const
Resolution
&
r
)
const
{
return
w
==
r
.
w
&&
h
==
r
.
h
&&
hz
==
r
.
hz
;
}
std
::
wstring
toString
()
const
{
std
::
wstring
res
=
std
::
to_wstring
(
w
)
+
L"x"
+
std
::
to_wstring
(
h
)
+
L" "
+
std
::
to_wstring
(
hz
)
+
L"Hz"
;
return
res
;
}
bool
valid
()
const
{
return
!
(
w
==
0
||
h
==
0
||
hz
==
0
);
}
};
bool
isMain
=
false
;
std
::
wstring
name
=
{};
std
::
wstring
deviceName
=
{};
std
::
wstring
deviceString
=
{};
Resolution
curResolution
=
{};
std
::
vector
<
Resolution
>
supportResolutions
=
{};
bool
isResolutionSupport
(
int
w
,
int
h
,
int
hz
)
const
{
for
(
const
auto
&
r
:
supportResolutions
)
{
if
(
r
.
w
==
w
&&
r
.
h
==
h
&&
r
.
hz
==
hz
)
{
return
true
;
}
}
return
false
;
}
bool
isResolutionSupport
(
const
Resolution
&
r
)
const
{
for
(
const
auto
&
l
:
supportResolutions
)
{
if
(
l
==
r
)
{
return
true
;
}
}
return
false
;
}
bool
valid
()
const
{
return
curResolution
.
valid
()
&&
!
name
.
empty
()
&&
!
deviceName
.
empty
()
&&
!
supportResolutions
.
empty
();
}
std
::
wstring
toString
(
bool
withSupportRes
=
false
)
const
{
std
::
wstring
str
=
L"{
\n
"
;
str
+=
L" isMain : "
;
str
+=
isMain
?
L"true"
:
L"false"
;
str
+=
L"
\n
"
;
str
+=
L" name : "
+
name
+
L"
\n
"
;
str
+=
L" deviceName : "
+
deviceName
+
L"
\n
"
;
str
+=
L" deviceString : "
+
deviceString
+
L"
\n
"
;
str
+=
L" curResolution : "
+
curResolution
.
toString
()
+
L"
\n
"
;
if
(
withSupportRes
)
{
str
+=
L" supportResolutions : {
\n
"
;
for
(
const
auto
&
res
:
supportResolutions
)
{
str
+=
L" "
+
res
.
toString
()
+
L"
\n
"
;
}
str
+=
L" }
\n
"
;
}
str
+=
L"}
\n
"
;
return
str
;
}
};
typedef
std
::
vector
<
MonitorInfo
>
MonitorInfos
;
static
MonitorInfos
getMonitors
()
{
MonitorInfos
mis
;
BOOL
ret
=
FALSE
;
DWORD
iDevNum
=
0
;
do
{
DISPLAY_DEVICE
displayDevice
;
ZeroMemory
(
&
displayDevice
,
sizeof
(
DISPLAY_DEVICE
));
displayDevice
.
cb
=
sizeof
(
displayDevice
);
ret
=
EnumDisplayDevicesW
(
NULL
,
iDevNum
,
&
displayDevice
,
0
);
//qDebug("StateFlags 0x%X",displayDevice.StateFlags);
if
(
ret
&&
(
displayDevice
.
StateFlags
&
DISPLAY_DEVICE_ATTACHED_TO_DESKTOP
))
{
//MYQDEBUG << "Device #" << iDevNum;
//dumpDISPLAY_DEVICE(displayDevice);
MonitorInfo
mi
;
mi
.
deviceName
=
displayDevice
.
DeviceName
;
mi
.
deviceString
=
displayDevice
.
DeviceString
;
if
(
displayDevice
.
StateFlags
&
DISPLAY_DEVICE_PRIMARY_DEVICE
)
{
mi
.
isMain
=
true
;
}
DEVMODE
dm
=
{
0
};
dm
.
dmSize
=
sizeof
(
dm
);
EnumDisplaySettings
(
displayDevice
.
DeviceName
,
ENUM_CURRENT_SETTINGS
,
&
dm
);
mi
.
curResolution
.
w
=
dm
.
dmPelsWidth
;
mi
.
curResolution
.
h
=
dm
.
dmPelsHeight
;
mi
.
curResolution
.
hz
=
dm
.
dmDisplayFrequency
;
for
(
int
i
=
0
;
0
!=
EnumDisplaySettingsW
(
displayDevice
.
DeviceName
,
i
,
&
dm
);
i
++
)
{
MonitorInfo
::
Resolution
r
{
(
int
)
dm
.
dmPelsWidth
,
(
int
)
dm
.
dmPelsHeight
,
(
int
)
dm
.
dmDisplayFrequency
};
if
(
!
mi
.
isResolutionSupport
(
r
))
{
mi
.
supportResolutions
.
push_back
(
r
);
}
}
// detached device, use first supportted res
if
(
!
mi
.
supportResolutions
.
empty
())
{
if
(
!
mi
.
curResolution
.
valid
())
{
mi
.
curResolution
=
mi
.
supportResolutions
.
front
();
}
DISPLAY_DEVICE
dd
;
ZeroMemory
(
&
dd
,
sizeof
(
DISPLAY_DEVICE
));
dd
.
cb
=
sizeof
(
dd
);
int
iMonitorNum
=
0
;
if
(
EnumDisplayDevices
(
displayDevice
.
DeviceName
,
iMonitorNum
,
&
dd
,
0
))
{
//MYQDEBUG << "Device #" << iDevNum << "Monitor #" << iMonitorNum;
//dumpDISPLAY_DEVICE(dd);
std
::
wstring
name
=
dd
.
DeviceString
;
if
(
name
!=
L"Generic PnP Monitor"
&&
name
!=
L"通用即插即用监视器"
)
{
mi
.
name
=
name
;
}
else
{
std
::
wstring
deviceId
=
dd
.
DeviceID
;
deviceId
=
deviceId
.
substr
(
8
,
deviceId
.
find
(
L"
\\
"
,
9
)
-
8
);
mi
.
name
=
deviceId
;
}
//dumpMoniterInfo(mi);
mis
.
push_back
(
mi
);
ZeroMemory
(
&
dd
,
sizeof
(
DISPLAY_DEVICE
));
dd
.
cb
=
sizeof
(
dd
);
iMonitorNum
++
;
}
}
else
{
#ifdef _DEBUG
//MYQDEBUG << "no supported resolutions!";
#endif
DISPLAY_DEVICE
dd
;
ZeroMemory
(
&
dd
,
sizeof
(
DISPLAY_DEVICE
));
dd
.
cb
=
sizeof
(
dd
);
int
iMonitorNum
=
0
;
if
(
EnumDisplayDevices
(
displayDevice
.
DeviceName
,
iMonitorNum
,
&
dd
,
0
))
{
//MYQDEBUG << "Device #" << iDevNum << "Monitor #" << iMonitorNum;
//dumpDISPLAY_DEVICE(dd);
std
::
wstring
name
=
dd
.
DeviceString
;
if
(
name
!=
L"Generic PnP Monitor"
&&
name
!=
L"通用即插即用监视器"
)
{
mi
.
name
=
name
;
}
else
{
std
::
wstring
deviceId
=
dd
.
DeviceID
;
deviceId
=
deviceId
.
substr
(
8
,
deviceId
.
find
(
L"
\\
"
,
9
)
-
8
);
mi
.
name
=
deviceId
;
}
//dumpMoniterInfo(mi);
mis
.
push_back
(
mi
);
ZeroMemory
(
&
dd
,
sizeof
(
DISPLAY_DEVICE
));
dd
.
cb
=
sizeof
(
dd
);
iMonitorNum
++
;
}
}
}
iDevNum
++
;
}
while
(
ret
);
return
mis
;
}
//! 设置显示模式:扩展模式
static
bool
setExtendMode
()
{
auto
ret
=
SetDisplayConfig
(
0
,
NULL
,
0
,
NULL
,
SDC_TOPOLOGY_EXTEND
|
SDC_APPLY
);
//MYQDEBUG << "SetDisplayConfig SDC_TOPOLOGY_EXTEND returns:" << (ret == ERROR_SUCCESS);
return
ret
==
ERROR_SUCCESS
;
}
//! 设置显示模式:克隆模式
static
bool
setCloneMode
()
{
auto
ret
=
SetDisplayConfig
(
0
,
NULL
,
0
,
NULL
,
SDC_TOPOLOGY_CLONE
|
SDC_APPLY
);
//MYQDEBUG << "SetDisplayConfig SDC_TOPOLOGY_CLONE returns:" << (ret == ERROR_SUCCESS);
return
ret
==
ERROR_SUCCESS
;
}
//void setOnlyDisplayInMainMonitor() {
// auto ret = SetDisplayConfig(0, NULL, 0, NULL, SDC_TOPOLOGY_INTERNAL | SDC_APPLY);
// MYQDEBUG << "SetDisplayConfig SDC_TOPOLOGY_EXTEND returns:" << ret;
//}
//
//void setOnlyDisplayInSecondMonitor() {
// auto ret = SetDisplayConfig(0, NULL, 0, NULL, SDC_TOPOLOGY_EXTERNAL | SDC_APPLY);
// MYQDEBUG << "SetDisplayConfig SDC_TOPOLOGY_EXTERNAL returns:" << ret;
//}
//! 设置后必须提交,否则不生效
static
bool
commitChange
()
{
auto
ret
=
ChangeDisplaySettingsExW
(
NULL
,
NULL
,
NULL
,
0
,
NULL
);
//MYQDEBUG << "commitChange ChangeDisplaySettingsExW returns:" << (ret == ERROR_SUCCESS);
return
ret
==
ERROR_SUCCESS
;
};
/*
* @brief 禁用某个显示器
* @param deviceName MonitorInfo::deviceName
*/
static
bool
disableMonitor
(
const
std
::
wstring
&
deviceName
)
{
DEVMODEW
dm
=
{
0
};
dm
.
dmSize
=
sizeof
(
dm
);
dm
.
dmFields
=
DM_POSITION
|
DM_PELSWIDTH
|
DM_PELSHEIGHT
;
dm
.
dmPelsWidth
=
dm
.
dmPelsHeight
=
0
;
DWORD
dwFlags
=
CDS_UPDATEREGISTRY
|
CDS_GLOBAL
|
CDS_NORESET
;
auto
ret
=
ChangeDisplaySettingsExW
(
deviceName
.
data
(),
&
dm
,
nullptr
,
dwFlags
,
nullptr
);
//MYQDEBUG << "disableMonitor ChangeDisplaySettingsExW returns:" << (ret == ERROR_SUCCESS);
return
commitChange
();
}
/*
* @brief 设置主显示器
* @param newMain 新的主显示器
* @param oldMain 旧的主显示器
*/
static
bool
setMainMonitor
(
const
MonitorInfo
&
newMain
,
const
MonitorInfo
&
oldMain
)
{
auto
moveOld
=
[](
const
MonitorInfo
&
newMain
,
const
MonitorInfo
&
oldMain
)
{
DEVMODEW
dm
=
{
0
};
dm
.
dmSize
=
sizeof
(
dm
);
dm
.
dmFields
=
DM_POSITION
;
dm
.
dmPosition
.
x
=
newMain
.
curResolution
.
w
;
DWORD
dwFlags
=
CDS_UPDATEREGISTRY
|
CDS_GLOBAL
|
CDS_NORESET
;
auto
ret
=
ChangeDisplaySettingsExW
(
oldMain
.
deviceName
.
data
(),
&
dm
,
nullptr
,
dwFlags
,
nullptr
);
//MYQDEBUG << "moveOld ChangeDisplaySettingsExW returns:" << (ret == ERROR_SUCCESS);
return
ret
==
ERROR_SUCCESS
;
};
auto
moveNew
=
[](
const
MonitorInfo
&
newMain
)
{
DEVMODEW
dm
=
{
0
};
dm
.
dmSize
=
sizeof
(
dm
);
dm
.
dmFields
=
DM_POSITION
;
dm
.
dmPosition
.
x
=
dm
.
dmPosition
.
y
=
0
;
DWORD
dwFlags
=
CDS_UPDATEREGISTRY
|
CDS_GLOBAL
|
CDS_NORESET
|
CDS_SET_PRIMARY
;
auto
ret
=
ChangeDisplaySettingsExW
(
newMain
.
deviceName
.
data
(),
&
dm
,
nullptr
,
dwFlags
,
nullptr
);
//MYQDEBUG << "moveNew ChangeDisplaySettingsExW returns:" << (ret == ERROR_SUCCESS);
return
ret
==
ERROR_SUCCESS
;
};
moveOld
(
newMain
,
oldMain
);
moveNew
(
newMain
);
return
commitChange
();
}
//! 修改显示器分辨率、刷新率
static
bool
changeResolution
(
const
MonitorInfo
&
monitor
,
const
MonitorInfo
::
Resolution
&
res
)
{
DEVMODEW
dm
=
{
0
};
dm
.
dmSize
=
sizeof
(
dm
);
dm
.
dmPelsWidth
=
res
.
w
;
dm
.
dmPelsHeight
=
res
.
h
;
dm
.
dmDisplayFrequency
=
res
.
hz
;
dm
.
dmFields
=
DM_PELSWIDTH
|
DM_PELSHEIGHT
|
DM_DISPLAYFREQUENCY
;
DWORD
dwFlags
=
CDS_UPDATEREGISTRY
|
CDS_GLOBAL
;
auto
ret
=
ChangeDisplaySettingsExW
(
monitor
.
deviceName
.
data
(),
&
dm
,
nullptr
,
dwFlags
,
nullptr
);
//MYQDEBUG << "changeResolution ChangeDisplaySettingsExW returns:" << (ret == ERROR_SUCCESS);
return
commitChange
();
}
}
}
This diff is collapsed.
Click to expand it.
test/test.sln
View file @
4f3b52c6
...
@@ -56,6 +56,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "win32", "win32", "{B5D9E71E
...
@@ -56,6 +56,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "win32", "win32", "{B5D9E71E
..\jlib\win32\deviceuniqueidentifier.h = ..\jlib\win32\deviceuniqueidentifier.h
..\jlib\win32\deviceuniqueidentifier.h = ..\jlib\win32\deviceuniqueidentifier.h
..\jlib\win32\file_op.h = ..\jlib\win32\file_op.h
..\jlib\win32\file_op.h = ..\jlib\win32\file_op.h
..\jlib\win32\memory_micros.h = ..\jlib\win32\memory_micros.h
..\jlib\win32\memory_micros.h = ..\jlib\win32\memory_micros.h
..\jlib\win32\monitor.h = ..\jlib\win32\monitor.h
..\jlib\win32\MyWSAError.h = ..\jlib\win32\MyWSAError.h
..\jlib\win32\MyWSAError.h = ..\jlib\win32\MyWSAError.h
..\jlib\win32\odbccp32.lib = ..\jlib\win32\odbccp32.lib
..\jlib\win32\odbccp32.lib = ..\jlib\win32\odbccp32.lib
..\jlib\win32\path_helper.h = ..\jlib\win32\path_helper.h
..\jlib\win32\path_helper.h = ..\jlib\win32\path_helper.h
...
@@ -291,6 +292,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple7zwrapper", "simple7z
...
@@ -291,6 +292,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple7zwrapper", "simple7z
EndProject
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_strutil", "test_strutil\test_strutil.vcxproj", "{0C743CE7-E49C-47F8-BC53-13929EA5CDA3}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_strutil", "test_strutil\test_strutil.vcxproj", "{0C743CE7-E49C-47F8-BC53-13929EA5CDA3}"
EndProject
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_monitor", "test_monitor\test_monitor.vcxproj", "{5EA0AFE3-134D-4573-B8E7-ADEC802722DF}"
EndProject
Global
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x64 = Debug|x64
...
@@ -589,6 +592,14 @@ Global
...
@@ -589,6 +592,14 @@ Global
{0C743CE7-E49C-47F8-BC53-13929EA5CDA3}.Release|x64.Build.0 = Release|x64
{0C743CE7-E49C-47F8-BC53-13929EA5CDA3}.Release|x64.Build.0 = Release|x64
{0C743CE7-E49C-47F8-BC53-13929EA5CDA3}.Release|x86.ActiveCfg = Release|Win32
{0C743CE7-E49C-47F8-BC53-13929EA5CDA3}.Release|x86.ActiveCfg = Release|Win32
{0C743CE7-E49C-47F8-BC53-13929EA5CDA3}.Release|x86.Build.0 = Release|Win32
{0C743CE7-E49C-47F8-BC53-13929EA5CDA3}.Release|x86.Build.0 = Release|Win32
{5EA0AFE3-134D-4573-B8E7-ADEC802722DF}.Debug|x64.ActiveCfg = Debug|x64
{5EA0AFE3-134D-4573-B8E7-ADEC802722DF}.Debug|x64.Build.0 = Debug|x64
{5EA0AFE3-134D-4573-B8E7-ADEC802722DF}.Debug|x86.ActiveCfg = Debug|Win32
{5EA0AFE3-134D-4573-B8E7-ADEC802722DF}.Debug|x86.Build.0 = Debug|Win32
{5EA0AFE3-134D-4573-B8E7-ADEC802722DF}.Release|x64.ActiveCfg = Release|x64
{5EA0AFE3-134D-4573-B8E7-ADEC802722DF}.Release|x64.Build.0 = Release|x64
{5EA0AFE3-134D-4573-B8E7-ADEC802722DF}.Release|x86.ActiveCfg = Release|Win32
{5EA0AFE3-134D-4573-B8E7-ADEC802722DF}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
HideSolutionNode = FALSE
...
@@ -655,6 +666,7 @@ Global
...
@@ -655,6 +666,7 @@ Global
{ECF057F3-AB01-4129-8C5C-E59DD4261770} = {5AFB3C82-FDEA-458C-9B56-E28A3F96F113}
{ECF057F3-AB01-4129-8C5C-E59DD4261770} = {5AFB3C82-FDEA-458C-9B56-E28A3F96F113}
{41C26D67-0174-41AC-850E-1F84181138E5} = {729A65CE-3F07-4C2E-ACDC-F9EEC6477F2A}
{41C26D67-0174-41AC-850E-1F84181138E5} = {729A65CE-3F07-4C2E-ACDC-F9EEC6477F2A}
{0C743CE7-E49C-47F8-BC53-13929EA5CDA3} = {ABCB8CF8-5E82-4C47-A0FC-E82DF105DF99}
{0C743CE7-E49C-47F8-BC53-13929EA5CDA3} = {ABCB8CF8-5E82-4C47-A0FC-E82DF105DF99}
{5EA0AFE3-134D-4573-B8E7-ADEC802722DF} = {0E6598D3-602D-4552-97F7-DC5AB458D553}
EndGlobalSection
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {A8EBEA58-739C-4DED-99C0-239779F57D5D}
SolutionGuid = {A8EBEA58-739C-4DED-99C0-239779F57D5D}
...
...
This diff is collapsed.
Click to expand it.
test/test_monitor/test_monitor.cpp
0 → 100644
View file @
4f3b52c6
#include "../../jlib/win32/monitor.h"
#include <stdio.h>
using
namespace
jlib
::
win32
;
int
main
()
{
auto
mis
=
getMonitors
();
printf
(
"total %zu monitors:
\n
"
,
mis
.
size
());
for
(
const
auto
&
mi
:
mis
)
{
wprintf
(
mi
.
toString
(
true
).
data
());
}
}
This diff is collapsed.
Click to expand it.
test/test_monitor/test_monitor.vcxproj
0 → 100644
View file @
4f3b52c6
<?xml version="1.0" encoding="utf-8"?>
<Project
DefaultTargets=
"Build"
xmlns=
"http://schemas.microsoft.com/developer/msbuild/2003"
>
<ItemGroup
Label=
"ProjectConfigurations"
>
<ProjectConfiguration
Include=
"Debug|Win32"
>
<Configuration>
Debug
</Configuration>
<Platform>
Win32
</Platform>
</ProjectConfiguration>
<ProjectConfiguration
Include=
"Release|Win32"
>
<Configuration>
Release
</Configuration>
<Platform>
Win32
</Platform>
</ProjectConfiguration>
<ProjectConfiguration
Include=
"Debug|x64"
>
<Configuration>
Debug
</Configuration>
<Platform>
x64
</Platform>
</ProjectConfiguration>
<ProjectConfiguration
Include=
"Release|x64"
>
<Configuration>
Release
</Configuration>
<Platform>
x64
</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup
Label=
"Globals"
>
<VCProjectVersion>
16.0
</VCProjectVersion>
<ProjectGuid>
{5EA0AFE3-134D-4573-B8E7-ADEC802722DF}
</ProjectGuid>
<RootNamespace>
testmonitor
</RootNamespace>
<WindowsTargetPlatformVersion>
10.0
</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.Default.props"
/>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
Label=
"Configuration"
>
<ConfigurationType>
Application
</ConfigurationType>
<UseDebugLibraries>
true
</UseDebugLibraries>
<PlatformToolset>
v142
</PlatformToolset>
<CharacterSet>
Unicode
</CharacterSet>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
Label=
"Configuration"
>
<ConfigurationType>
Application
</ConfigurationType>
<UseDebugLibraries>
false
</UseDebugLibraries>
<PlatformToolset>
v142
</PlatformToolset>
<WholeProgramOptimization>
true
</WholeProgramOptimization>
<CharacterSet>
Unicode
</CharacterSet>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
Label=
"Configuration"
>
<ConfigurationType>
Application
</ConfigurationType>
<UseDebugLibraries>
true
</UseDebugLibraries>
<PlatformToolset>
v142
</PlatformToolset>
<CharacterSet>
Unicode
</CharacterSet>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
Label=
"Configuration"
>
<ConfigurationType>
Application
</ConfigurationType>
<UseDebugLibraries>
false
</UseDebugLibraries>
<PlatformToolset>
v142
</PlatformToolset>
<WholeProgramOptimization>
true
</WholeProgramOptimization>
<CharacterSet>
Unicode
</CharacterSet>
</PropertyGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.props"
/>
<ImportGroup
Label=
"ExtensionSettings"
>
</ImportGroup>
<ImportGroup
Label=
"Shared"
>
</ImportGroup>
<ImportGroup
Label=
"PropertySheets"
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
</ImportGroup>
<ImportGroup
Label=
"PropertySheets"
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
</ImportGroup>
<ImportGroup
Label=
"PropertySheets"
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
</ImportGroup>
<ImportGroup
Label=
"PropertySheets"
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
</ImportGroup>
<PropertyGroup
Label=
"UserMacros"
/>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
>
<LinkIncremental>
true
</LinkIncremental>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
>
<LinkIncremental>
true
</LinkIncremental>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
>
<LinkIncremental>
false
</LinkIncremental>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
>
<LinkIncremental>
false
</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
>
<ClCompile>
<WarningLevel>
Level3
</WarningLevel>
<SDLCheck>
true
</SDLCheck>
<PreprocessorDefinitions>
_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
</PreprocessorDefinitions>
<ConformanceMode>
true
</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>
Console
</SubSystem>
<GenerateDebugInformation>
true
</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
>
<ClCompile>
<WarningLevel>
Level3
</WarningLevel>
<SDLCheck>
true
</SDLCheck>
<PreprocessorDefinitions>
_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
</PreprocessorDefinitions>
<ConformanceMode>
true
</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>
Console
</SubSystem>
<GenerateDebugInformation>
true
</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
>
<ClCompile>
<WarningLevel>
Level3
</WarningLevel>
<FunctionLevelLinking>
true
</FunctionLevelLinking>
<IntrinsicFunctions>
true
</IntrinsicFunctions>
<SDLCheck>
true
</SDLCheck>
<PreprocessorDefinitions>
NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
</PreprocessorDefinitions>
<ConformanceMode>
true
</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>
Console
</SubSystem>
<EnableCOMDATFolding>
true
</EnableCOMDATFolding>
<OptimizeReferences>
true
</OptimizeReferences>
<GenerateDebugInformation>
true
</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
>
<ClCompile>
<WarningLevel>
Level3
</WarningLevel>
<FunctionLevelLinking>
true
</FunctionLevelLinking>
<IntrinsicFunctions>
true
</IntrinsicFunctions>
<SDLCheck>
true
</SDLCheck>
<PreprocessorDefinitions>
NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
</PreprocessorDefinitions>
<ConformanceMode>
true
</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>
Console
</SubSystem>
<EnableCOMDATFolding>
true
</EnableCOMDATFolding>
<OptimizeReferences>
true
</OptimizeReferences>
<GenerateDebugInformation>
true
</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile
Include=
"test_monitor.cpp"
/>
</ItemGroup>
<ItemGroup>
<ClInclude
Include=
"..\..\jlib\win32\monitor.h"
/>
</ItemGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.targets"
/>
<ImportGroup
Label=
"ExtensionTargets"
>
</ImportGroup>
</Project>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
test/test_monitor/test_monitor.vcxproj.filters
0 → 100644
View file @
4f3b52c6
<?xml version="1.0" encoding="utf-8"?>
<Project
ToolsVersion=
"4.0"
xmlns=
"http://schemas.microsoft.com/developer/msbuild/2003"
>
<ItemGroup>
<Filter
Include=
"Source Files"
>
<UniqueIdentifier>
{4FC737F1-C7A5-4376-A066-2A32D752A2FF}
</UniqueIdentifier>
<Extensions>
cpp;c;cc;cxx;c++;def;odl;idl;hpj;bat;asm;asmx
</Extensions>
</Filter>
<Filter
Include=
"Header Files"
>
<UniqueIdentifier>
{93995380-89BD-4b04-88EB-625FBE52EBFB}
</UniqueIdentifier>
<Extensions>
h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
</Extensions>
</Filter>
<Filter
Include=
"Resource Files"
>
<UniqueIdentifier>
{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
</UniqueIdentifier>
<Extensions>
rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile
Include=
"test_monitor.cpp"
>
<Filter>
Source Files
</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude
Include=
"..\..\jlib\win32\monitor.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
</ItemGroup>
</Project>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
test/test_monitor/test_monitor.vcxproj.user
0 → 100644
View file @
4f3b52c6
<?xml version="1.0" encoding="utf-8"?>
<Project
ToolsVersion=
"Current"
xmlns=
"http://schemas.microsoft.com/developer/msbuild/2003"
>
<PropertyGroup
/>
</Project>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment