调整目录,添加依赖
|
@ -1,9 +1,2 @@
|
|||
/library
|
||||
/R32
|
||||
/3rd
|
||||
ReleaseConsole
|
||||
Release
|
||||
Debug
|
||||
dependent/library
|
||||
.vs
|
||||
*.exe
|
||||
*.dll
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
/Release32
|
||||
/Debug64
|
||||
/Debug32
|
|
@ -20,9 +20,9 @@ local cjson = require("cjson.safe")
|
|||
local cmsgpack = require("cmsgpack.safe")
|
||||
|
||||
function 复制文件(old,new)
|
||||
local rf<close> = io.open(utf8toansi(old),"rb")
|
||||
local rf<close> = io.open(old,"rb")
|
||||
if rf then
|
||||
local wf<close> = io.open(utf8toansi(new),"wb")
|
||||
local wf<close> = io.open(new,"wb")
|
||||
if wf then
|
||||
wf:write(rf:read("a"))
|
||||
return true
|
||||
|
@ -32,14 +32,14 @@ function 复制文件(old,new)
|
|||
end
|
||||
|
||||
function 读取文件(path)
|
||||
local file<close> = io.open(utf8toansi(path), 'rb');
|
||||
local file<close> = io.open(path, 'rb');
|
||||
if file then
|
||||
return file:read('a')
|
||||
end
|
||||
end
|
||||
|
||||
function 写出文件(path,data)
|
||||
local file<close> = io.open(utf8toansi(path),"wb")
|
||||
local file<close> = io.open(path,"wb")
|
||||
if file then
|
||||
file:write(data)
|
||||
return true
|
||||
|
@ -48,7 +48,6 @@ function 写出文件(path,data)
|
|||
end
|
||||
|
||||
function 遍历目录(path)
|
||||
path = utf8toansi(path)
|
||||
local dir,u = lfs.dir(path)
|
||||
local pt = {}
|
||||
return function ()
|
||||
|
@ -63,7 +62,7 @@ function 遍历目录(path)
|
|||
end
|
||||
file = "."
|
||||
else
|
||||
return ansitoutf8(f)
|
||||
return f
|
||||
end
|
||||
elseif pt[1] then
|
||||
path = table.remove(pt, 1)
|
|
@ -0,0 +1,5 @@
|
|||
--[[
|
||||
@Author : baidwwy
|
||||
@Date : 2021-03-16 19:08:27
|
||||
@LastEditTime : 2021-03-16 19:08:28
|
||||
--]]
|
|
@ -1,8 +1,9 @@
|
|||
--[[
|
||||
@Author : baidwwy
|
||||
@Date : 2021-02-08 15:51:24
|
||||
@LastEditTime : 2021-02-10 18:07:16
|
||||
@LastEditTime : 2021-03-19 07:58:00
|
||||
--]]
|
||||
require("GGE")
|
||||
local SDL = require("SDL")
|
||||
引擎 = require"SDL.窗口"{
|
||||
标题 = _VERSION.."|".._GGEVERSION,
|
||||
|
@ -11,6 +12,12 @@ local SDL = require("SDL")
|
|||
帧率 = 60,
|
||||
}
|
||||
|
||||
jpg = require("SDL.精灵")("实例/测试/test.jpg")
|
||||
bmp = require("SDL.精灵")("实例/测试/test.bmp")
|
||||
png = require("SDL.精灵")("实例/测试/test.png")
|
||||
print(jpg)
|
||||
print(bmp)
|
||||
print(png)
|
||||
function 引擎:启动事件(webp1,webp2)
|
||||
local base64 = require("base64")
|
||||
local data = base64.decode(webp1)
|
|
@ -0,0 +1,184 @@
|
|||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "./GUI"
|
||||
},
|
||||
{
|
||||
"path": "../lua",
|
||||
"name": "GGELUA"
|
||||
}
|
||||
],
|
||||
|
||||
"settings": {
|
||||
"fileheader.customMade": {
|
||||
"Author":"GGELUA",//作者名称
|
||||
"Date": "Do not edit", // 设置后默认设置文件生成时间
|
||||
"LastEditTime": "Do not edit", // 设置后,保存文件更改默认更新最后编辑时间
|
||||
},
|
||||
"Lua.diagnostics.disable": [
|
||||
"lowercase-global",
|
||||
"unused-local",
|
||||
"undefined-global",
|
||||
"undefined-env-child",
|
||||
"unbalanced-assignments",
|
||||
"trailing-space"
|
||||
],
|
||||
"Lua.runtime.unicodeName": true,
|
||||
},
|
||||
|
||||
"launch": {
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Debug GGELUA",
|
||||
"type": "lua-local",
|
||||
"request": "launch",
|
||||
"program": {
|
||||
"command": "${execPath}/../../../ggelua.exe"
|
||||
},
|
||||
"args": ["${fileWorkspaceFolder}"],
|
||||
"cwd": "${fileWorkspaceFolder}"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"tasks": {
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "ggebuild",
|
||||
"type": "shell",
|
||||
"command": "${execPath}/../../../lua.exe",
|
||||
"args": [
|
||||
"${execPath}/../../../build.lua",
|
||||
"${workspaceFolder}",
|
||||
],
|
||||
"windows": {
|
||||
"options": {
|
||||
"shell": {
|
||||
"executable": "cmd.exe",
|
||||
"args": [
|
||||
"/c",
|
||||
"chcp 65001 &&"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": true,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": true
|
||||
},
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"problemMatcher": {
|
||||
"owner": "lua",
|
||||
"fileLocation": [
|
||||
"autoDetect",
|
||||
"${workspaceFolder}"
|
||||
],
|
||||
"pattern": {
|
||||
"regexp": "^\\s*[\\S]*\\s*\"?(.*?)[\"\\]]*:(\\d+):\\s*(.*)$",
|
||||
"file": 1,
|
||||
"line": 2,
|
||||
"message": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"label": "ggerun",
|
||||
"type": "shell",
|
||||
"command": "${execPath}/../../../GGELUAc.exe",
|
||||
"args": [
|
||||
"${workspaceFolder}"
|
||||
],
|
||||
"windows": {
|
||||
"options": {
|
||||
"shell": {
|
||||
"executable": "cmd.exe",
|
||||
"args": ["/c"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": true,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": true
|
||||
},
|
||||
"problemMatcher": {
|
||||
"owner": "lua",
|
||||
"fileLocation": [
|
||||
"autoDetect",
|
||||
"${workspaceFolder}"
|
||||
],
|
||||
"pattern": {
|
||||
"regexp": "^\\s*[\\S]*\\s*\"?(.*?)[\"\\]]*:(\\d+):\\s*(.*)$",
|
||||
"file": 1,
|
||||
"line": 2,
|
||||
"message": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"label": "lua",
|
||||
"type": "shell",
|
||||
"command": "${execPath}/../../../lua.exe",
|
||||
"args": [
|
||||
"${file}",
|
||||
"${workspaceFolder}"
|
||||
],
|
||||
"windows": {
|
||||
"options": {
|
||||
"shell": {
|
||||
"executable": "cmd.exe",
|
||||
"args": [
|
||||
"/c",
|
||||
"chcp 65001 &&"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": true,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": true
|
||||
},
|
||||
"problemMatcher": {
|
||||
"owner": "lua",
|
||||
"fileLocation": [
|
||||
"autoDetect",
|
||||
"${workspaceFolder}"
|
||||
],
|
||||
"pattern": {
|
||||
"regexp": "^\\s*[\\S]*\\s*\"?(.*?)[\"\\]]*:(\\d+):\\s*(.*)$",
|
||||
"file": 1,
|
||||
"line": 2,
|
||||
"message": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"ggelua":{
|
||||
"type":"ggelua",
|
||||
"script":[
|
||||
"lua"
|
||||
],
|
||||
"library":[
|
||||
]
|
||||
}
|
||||
|
||||
}
|
After Width: | Height: | Size: 628 KiB |
|
@ -0,0 +1,66 @@
|
|||
--[[
|
||||
@Author : GGELUA
|
||||
@Date : 2019-06-23 12:24:23
|
||||
@LastEditTime : 2021-02-10 18:21:10
|
||||
--]]
|
||||
|
||||
local SDL = require("SDL")
|
||||
引擎 = require"SDL.窗口"{
|
||||
标题 = "GGELUA",
|
||||
宽度 = 800,
|
||||
高度 = 600,
|
||||
帧率 = 60,
|
||||
}
|
||||
local GUI = require("GUI")
|
||||
local test = GUI.创建界面('test')
|
||||
local 输入 = test:创建输入("输入",10,10,230,16)
|
||||
function 输入:初始化()
|
||||
--self:置限制字数(16)
|
||||
self:置文本("test")
|
||||
--self:置模式(self.英文模式|self.数字模式)
|
||||
self:置焦点(true)
|
||||
end
|
||||
local 输入2 = test:创建输入("输入2",10,30,230,16)
|
||||
function 输入2:初始化()
|
||||
self:置文本("test2")
|
||||
end
|
||||
test:置可见(true,true)
|
||||
|
||||
img = require("SDL.精灵")("img0.jpg")
|
||||
|
||||
function 引擎:更新事件(dt,x,y)
|
||||
GUI.更新(dt,x,y)
|
||||
end
|
||||
|
||||
function 引擎:渲染事件(dt,x,y)
|
||||
self:渲染清除(0,0,0)
|
||||
img:显示(-300,-300)
|
||||
GUI.显示(x,y)
|
||||
self:渲染结束()
|
||||
end
|
||||
|
||||
function 引擎:键盘事件(状态,键码,按住)
|
||||
if 状态=='弹起' then
|
||||
if 键码==SDL.SDLK_F1 then
|
||||
|
||||
elseif 键码==SDL.SDLK_F2 then
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function 引擎:窗口事件(消息)
|
||||
if 消息==SDL.窗口_关闭 then
|
||||
引擎:关闭()
|
||||
end
|
||||
end
|
||||
|
||||
function 引擎:销毁事件()
|
||||
|
||||
end
|
||||
|
||||
function 引擎:错误事件(消息)
|
||||
|
||||
end
|
||||
|
||||
引擎:启动()
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.6 KiB |
|
@ -0,0 +1,184 @@
|
|||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "./mongo"
|
||||
},
|
||||
{
|
||||
"path": "../lua",
|
||||
"name": "GGELUA"
|
||||
}
|
||||
],
|
||||
|
||||
"settings": {
|
||||
"fileheader.customMade": {
|
||||
"Author":"GGELUA",//作者名称
|
||||
"Date": "Do not edit", // 设置后默认设置文件生成时间
|
||||
"LastEditTime": "Do not edit", // 设置后,保存文件更改默认更新最后编辑时间
|
||||
},
|
||||
"Lua.diagnostics.disable": [
|
||||
"lowercase-global",
|
||||
"unused-local",
|
||||
"undefined-global",
|
||||
"undefined-env-child",
|
||||
"unbalanced-assignments",
|
||||
"trailing-space"
|
||||
],
|
||||
"Lua.runtime.unicodeName": true,
|
||||
},
|
||||
|
||||
"launch": {
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Debug GGELUA",
|
||||
"type": "lua-local",
|
||||
"request": "launch",
|
||||
"program": {
|
||||
"command": "${execPath}/../../../ggelua.exe"
|
||||
},
|
||||
"args": ["${fileWorkspaceFolder}"],
|
||||
"cwd": "${fileWorkspaceFolder}"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"tasks": {
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "ggebuild",
|
||||
"type": "shell",
|
||||
"command": "${execPath}/../../../lua.exe",
|
||||
"args": [
|
||||
"${execPath}/../../../build.lua",
|
||||
"${workspaceFolder}"
|
||||
],
|
||||
"windows": {
|
||||
"options": {
|
||||
"shell": {
|
||||
"executable": "cmd.exe",
|
||||
"args": [
|
||||
"/c",
|
||||
"chcp 65001 &&"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": true,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": true
|
||||
},
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"problemMatcher": {
|
||||
"owner": "lua",
|
||||
"fileLocation": [
|
||||
"autoDetect",
|
||||
"${workspaceFolder}"
|
||||
],
|
||||
"pattern": {
|
||||
"regexp": "^\\s*[\\S]*\\s*\"?(.*?)[\"\\]]*:(\\d+):\\s*(.*)$",
|
||||
"file": 1,
|
||||
"line": 2,
|
||||
"message": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "ggerun",
|
||||
"type": "shell",
|
||||
"command": "${execPath}/../../../GGELUAc.exe",
|
||||
"args": [
|
||||
"${workspaceFolder}"
|
||||
],
|
||||
"windows": {
|
||||
"options": {
|
||||
"shell": {
|
||||
"executable": "cmd.exe",
|
||||
"args": [
|
||||
"/c"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": true,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": true
|
||||
},
|
||||
"problemMatcher": {
|
||||
"owner": "lua",
|
||||
"fileLocation": [
|
||||
"autoDetect",
|
||||
"${workspaceFolder}"
|
||||
],
|
||||
"pattern": {
|
||||
"regexp": "^\\s*[\\S]*\\s*\"?(.*?)[\"\\]]*:(\\d+):\\s*(.*)$",
|
||||
"file": 1,
|
||||
"line": 2,
|
||||
"message": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "lua",
|
||||
"type": "shell",
|
||||
"command": "${execPath}/../../../lua.exe",
|
||||
"args": [
|
||||
"${file}",
|
||||
"${workspaceFolder}"
|
||||
],
|
||||
"windows": {
|
||||
"options": {
|
||||
"shell": {
|
||||
"executable": "cmd.exe",
|
||||
"args": [
|
||||
"/c",
|
||||
"chcp 65001 &&"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": true,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": true
|
||||
},
|
||||
"problemMatcher": {
|
||||
"owner": "lua",
|
||||
"fileLocation": [
|
||||
"autoDetect",
|
||||
"${workspaceFolder}"
|
||||
],
|
||||
"pattern": {
|
||||
"regexp": "^\\s*[\\S]*\\s*\"?(.*?)[\"\\]]*:(\\d+):\\s*(.*)$",
|
||||
"file": 1,
|
||||
"line": 2,
|
||||
"message": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"ggelua":{
|
||||
"type":"ggelua",
|
||||
"script":[
|
||||
"lua"
|
||||
],
|
||||
"library":[
|
||||
]
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
--[[
|
||||
@Author : GGELUA
|
||||
@Date : 2019-06-23 12:24:23
|
||||
@LastEditTime : 2021-02-25 03:58:29
|
||||
--]]
|
||||
local SDL = require("SDL")
|
||||
引擎 = require"SDL.窗口"{
|
||||
标题 = "GGELUA",
|
||||
宽度 = 800,
|
||||
高度 = 600,
|
||||
帧率 = 60,
|
||||
}
|
||||
|
||||
require("test")
|
||||
|
||||
function 引擎:更新事件(dt,x,y)
|
||||
|
||||
end
|
||||
|
||||
function 引擎:渲染事件(dt,x,y)
|
||||
self:渲染清除(0x70,0x70,0x70)
|
||||
|
||||
self:渲染结束()
|
||||
end
|
||||
|
||||
function 引擎:键盘事件(状态,键码,按住)
|
||||
if 状态=='弹起' then
|
||||
if 键码==SDL.SDLK_F1 then
|
||||
|
||||
elseif 键码==SDL.SDLK_F2 then
|
||||
|
||||
|
||||
end
|
||||
end
|
||||
print(状态,键码,按住)
|
||||
end
|
||||
|
||||
function 引擎:窗口事件(消息)
|
||||
if 消息==SDL.窗口_关闭 then
|
||||
引擎:关闭()
|
||||
end
|
||||
end
|
||||
|
||||
function 引擎:销毁事件()
|
||||
|
||||
end
|
||||
|
||||
function 引擎:错误事件(消息)
|
||||
|
||||
end
|
||||
|
||||
引擎:启动()
|
|
@ -0,0 +1,61 @@
|
|||
--[[
|
||||
@Author : GGELUA
|
||||
@Date : 2021-02-23 14:33:10
|
||||
@LastEditTime : 2021-03-05 12:59:32
|
||||
--]]
|
||||
|
||||
local mongo = require("LIB.MongoDB")
|
||||
|
||||
local mg = mongo('mongodb://root:123456@127.0.0.1:27017')
|
||||
local db = mg:取数据库('ggelua')
|
||||
|
||||
if not db:检查集合('test') then
|
||||
db:创建集合('test')
|
||||
--用表创建索引
|
||||
local r = mg:命令('ggelua', {
|
||||
createIndexes="test",
|
||||
indexes={
|
||||
__array = true,--说明这是数组
|
||||
{
|
||||
key={名称=1},
|
||||
name="名称_1",
|
||||
unique= true
|
||||
}
|
||||
}
|
||||
})
|
||||
--用JSON创建
|
||||
-- local r = mg:命令('ggelua', [[
|
||||
-- {
|
||||
-- "createIndexes": "test",
|
||||
-- "indexes": [
|
||||
-- {
|
||||
-- "key": {
|
||||
-- "名称": 1
|
||||
-- },
|
||||
-- "name": "名称1",
|
||||
-- "unique": true
|
||||
-- }
|
||||
-- ]
|
||||
-- }
|
||||
-- ]])
|
||||
end
|
||||
local col = db:取集合('test')
|
||||
col:清空()
|
||||
|
||||
local id = mongo.ObjectID()
|
||||
print(tostring(id),id:hash(),type(mongo.ObjectID(tostring(id))))
|
||||
local query1 = mongo.BSON('{ "age" : { "$gt" : 25 } }')
|
||||
local query2 = mongo.BSON{_id = id}
|
||||
|
||||
local 玩家数据={
|
||||
_id = mongo.ObjectID(),
|
||||
uid = 0 , id = 0 , 外形 = 123 ,
|
||||
名称 ="555" , 称谓 ="" ,
|
||||
数组={__array = true,1,2,3}
|
||||
}
|
||||
ret = col:插入(玩家数据)
|
||||
|
||||
for person in col:遍历{} do
|
||||
print(person._id,person.uid)
|
||||
end
|
||||
print(col:查询一条{名称 ="555"}.外形)
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
334
Windows.sln
|
@ -3,55 +3,107 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
|||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.30907.101
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GGELUA", "app\ggelua\GGELUA.vcxproj", "{B2301BEF-1ED1-4724-BE1F-4BEEA697227A}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GGELUA", "project\windows\app\ggelua\GGELUA.vcxproj", "{B2301BEF-1ED1-4724-BE1F-4BEEA697227A}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{0241464B-2C21-4608-87F8-9994FC4A3CFB} = {0241464B-2C21-4608-87F8-9994FC4A3CFB}
|
||||
{4F7B97F6-1B8F-416C-A987-8DBA9B105F5D} = {4F7B97F6-1B8F-416C-A987-8DBA9B105F5D}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua54", "luadll\luadll.vcxproj", "{0FFA55D6-C072-4BA9-A5EA-F08CFFE7D641}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua54", "project\windows\lua\lua.vcxproj", "{0FFA55D6-C072-4BA9-A5EA-F08CFFE7D641}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua", "app\lua\lua.vcxproj", "{C6F3EA4C-9DB9-4FF8-8A89-75A5D9821277}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua", "project\windows\app\lua\lua.vcxproj", "{C6F3EA4C-9DB9-4FF8-8A89-75A5D9821277}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{0FFA55D6-C072-4BA9-A5EA-F08CFFE7D641} = {0FFA55D6-C072-4BA9-A5EA-F08CFFE7D641}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lib", "lib", "{8286A76F-269C-4C17-B8AE-240AFCC1A0BC}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsdl2", "lib\gsdl2\luasdl2.vcxproj", "{0241464B-2C21-4608-87F8-9994FC4A3CFB}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsdl2", "project\windows\lib\gsdl2\luasdl2.vcxproj", "{0241464B-2C21-4608-87F8-9994FC4A3CFB}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cjson", "lib\cjson\cjson.vcxproj", "{7792900A-4950-4E0B-9C34-A3449C6654E7}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cjson", "project\windows\lib\cjson\cjson.vcxproj", "{7792900A-4950-4E0B-9C34-A3449C6654E7}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gastar", "lib\gastar\gastar.vcxproj", "{37915959-E023-426D-9B00-BAD16A28AB93}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gastar", "project\windows\lib\gastar\gastar.vcxproj", "{37915959-E023-426D-9B00-BAD16A28AB93}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gffmpeg", "lib\gffmpeg\gffmpeg.vcxproj", "{922C9ED2-4D11-47AF-A355-1AD5918BD20C}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gffmpeg", "project\windows\lib\gffmpeg\gffmpeg.vcxproj", "{922C9ED2-4D11-47AF-A355-1AD5918BD20C}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ggelua", "lib\ggelua\ggelua.vcxproj", "{4F7B97F6-1B8F-416C-A987-8DBA9B105F5D}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ggelua", "project\windows\lib\ggelua\ggelua.vcxproj", "{4F7B97F6-1B8F-416C-A987-8DBA9B105F5D}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ghpsocket", "lib\ghpsocket\ghpsocket.vcxproj", "{C14F7B4B-9E35-409B-8956-0EFA2347104D}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ghpsocket", "project\windows\lib\ghpsocket\ghpsocket.vcxproj", "{C14F7B4B-9E35-409B-8956-0EFA2347104D}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gimgui", "lib\gimgui\gimgui.vcxproj", "{60C0F067-F9C9-4ABF-91E2-C18F90CA72A1}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gimgui", "project\windows\lib\gimgui\gimgui.vcxproj", "{60C0F067-F9C9-4ABF-91E2-C18F90CA72A1}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gip", "lib\gip\gip.vcxproj", "{BFB843F9-988D-4CA4-9293-0591CE825112}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gip", "project\windows\lib\gip\gip.vcxproj", "{BFB843F9-988D-4CA4-9293-0591CE825112}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "socket", "lib\socket\socket.vcxproj", "{2E2EBA37-6D73-40E2-89E3-A003B3156CA0}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "socket", "project\windows\lib\socket\socket.vcxproj", "{2E2EBA37-6D73-40E2-89E3-A003B3156CA0}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lsqlite3", "lib\lsqlite3\lsqlite3.vcxproj", "{964A0E35-BBA0-450D-BAE7-1D35EB21FD1C}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lsqlite3", "project\windows\lib\lsqlite3\lsqlite3.vcxproj", "{964A0E35-BBA0-450D-BAE7-1D35EB21FD1C}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luasql", "lib\luasql\luasql.vcxproj", "{93E531F7-A0B3-4DAE-9191-8B37A038731C}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luasql", "project\windows\lib\luasql\luasql.vcxproj", "{93E531F7-A0B3-4DAE-9191-8B37A038731C}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lzmq", "lib\lzmq\lzmq.vcxproj", "{F0586B55-BD50-4E58-89A8-D957D941B4D7}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lzmq", "project\windows\lib\lzmq\lzmq.vcxproj", "{F0586B55-BD50-4E58-89A8-D957D941B4D7}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mongo", "lib\mongo\lua-mongo.vcxproj", "{E0E8A6E0-EC75-4078-8ED9-35A72C39444C}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mongo", "project\windows\lib\mongo\lua-mongo.vcxproj", "{E0E8A6E0-EC75-4078-8ED9-35A72C39444C}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{178D2820-C8AE-4894-82A5-454A43F7AD21}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dep", "dep", "{8B78C654-0550-43A0-B0B0-82304584AB3F}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GGELUAc", "project\windows\app\ggeluac\GGELUAc.vcxproj", "{DD376932-B4BA-4C44-A146-C2E39A22F56D}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{0241464B-2C21-4608-87F8-9994FC4A3CFB} = {0241464B-2C21-4608-87F8-9994FC4A3CFB}
|
||||
{4F7B97F6-1B8F-416C-A987-8DBA9B105F5D} = {4F7B97F6-1B8F-416C-A987-8DBA9B105F5D}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "project\windows\dep\zlib\zlib.vcxproj", "{5FCA3894-FEB8-4C7F-B5FA-BAFF2E69F619}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite3", "project\windows\dep\sqlite3\sqlite3.vcxproj", "{50D338F5-BC93-B42B-85CE-FDA8F14DF907}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "project\windows\dep\SDL\SDL.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2main", "project\windows\dep\SDLmain\SDLmain.vcxproj", "{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HPSocketLIB4C", "project\windows\dep\HPSocket\HPSocketLIB4C.vcxproj", "{54E670E2-9A44-4816-B4A4-1EC2C8F248AF}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL_image", "project\windows\dep\SDL_image\SDL_image.vcxproj", "{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2_mixer", "project\windows\dep\SDL_mixer\SDL_mixer.vcxproj", "{F7E944B3-0815-40CD-B3E4-90B2A15B0E33}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL_ttf", "project\windows\dep\SDL_ttf\SDL_ttf.vcxproj", "{DDDBD07D-DC76-4AF6-8D02-3E2DEB6EE255}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjpeg", "project\windows\dep\libjpeg\libjpeg.vcxproj", "{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "image", "image", "{C9B5FF09-339F-46B2-BEE1-4704283CEFAC}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "mixer", "mixer", "{43E7C20B-0BE5-4774-930A-B875BB50A587}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ttf", "ttf", "{4C3F0F90-CB04-4AC3-B49A-AD8CE115AC2A}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpng", "project\windows\dep\libpng\libpng.vcxproj", "{D6973076-9317-4EF2-A0B8-B7A18AC0713E}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libFLAC", "project\windows\dep\libflac\libFLAC.vcxproj", "{4CEFBC84-C215-11DB-8314-0800200C9A66}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "native_midi", "project\windows\dep\native_midi\native_midi.vcxproj", "{EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "timidity", "project\windows\dep\timidity\timidity.vcxproj", "{B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libogg", "project\windows\dep\libogg\libogg.vcxproj", "{15CBFEFF-7965-41F5-B4E2-21E8795C9159}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvorbisfile", "project\windows\dep\libvorbisfile\libvorbisfile.vcxproj", "{CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvorbis", "project\windows\dep\libvorbis\libvorbis.vcxproj", "{3A214E06-B95E-4D61-A291-1F8DF2EC10FD}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmpg123", "project\windows\dep\libmpg123\libmpg123.vcxproj", "{67CAA87B-7CF1-4F93-BB67-21C513F40803}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "project\windows\dep\freetype\freetype.vcxproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libwebp", "project\windows\dep\libwebp\libwebp.vcxproj", "{EA1D1B51-F067-3C93-8F54-669095725F4B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
ReleaseConsole|Win32 = ReleaseConsole|Win32
|
||||
ReleaseConsole|x64 = ReleaseConsole|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{B2301BEF-1ED1-4724-BE1F-4BEEA697227A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
|
@ -62,10 +114,6 @@ Global
|
|||
{B2301BEF-1ED1-4724-BE1F-4BEEA697227A}.Release|Win32.Build.0 = Release|Win32
|
||||
{B2301BEF-1ED1-4724-BE1F-4BEEA697227A}.Release|x64.ActiveCfg = Release|x64
|
||||
{B2301BEF-1ED1-4724-BE1F-4BEEA697227A}.Release|x64.Build.0 = Release|x64
|
||||
{B2301BEF-1ED1-4724-BE1F-4BEEA697227A}.ReleaseConsole|Win32.ActiveCfg = ReleaseConsole|Win32
|
||||
{B2301BEF-1ED1-4724-BE1F-4BEEA697227A}.ReleaseConsole|Win32.Build.0 = ReleaseConsole|Win32
|
||||
{B2301BEF-1ED1-4724-BE1F-4BEEA697227A}.ReleaseConsole|x64.ActiveCfg = ReleaseConsole|x64
|
||||
{B2301BEF-1ED1-4724-BE1F-4BEEA697227A}.ReleaseConsole|x64.Build.0 = ReleaseConsole|x64
|
||||
{0FFA55D6-C072-4BA9-A5EA-F08CFFE7D641}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{0FFA55D6-C072-4BA9-A5EA-F08CFFE7D641}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{0FFA55D6-C072-4BA9-A5EA-F08CFFE7D641}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -74,9 +122,6 @@ Global
|
|||
{0FFA55D6-C072-4BA9-A5EA-F08CFFE7D641}.Release|Win32.Build.0 = Release|Win32
|
||||
{0FFA55D6-C072-4BA9-A5EA-F08CFFE7D641}.Release|x64.ActiveCfg = Release|x64
|
||||
{0FFA55D6-C072-4BA9-A5EA-F08CFFE7D641}.Release|x64.Build.0 = Release|x64
|
||||
{0FFA55D6-C072-4BA9-A5EA-F08CFFE7D641}.ReleaseConsole|Win32.ActiveCfg = Release|Win32
|
||||
{0FFA55D6-C072-4BA9-A5EA-F08CFFE7D641}.ReleaseConsole|x64.ActiveCfg = Release|x64
|
||||
{0FFA55D6-C072-4BA9-A5EA-F08CFFE7D641}.ReleaseConsole|x64.Build.0 = Release|x64
|
||||
{C6F3EA4C-9DB9-4FF8-8A89-75A5D9821277}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C6F3EA4C-9DB9-4FF8-8A89-75A5D9821277}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C6F3EA4C-9DB9-4FF8-8A89-75A5D9821277}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -85,10 +130,6 @@ Global
|
|||
{C6F3EA4C-9DB9-4FF8-8A89-75A5D9821277}.Release|Win32.Build.0 = Release|Win32
|
||||
{C6F3EA4C-9DB9-4FF8-8A89-75A5D9821277}.Release|x64.ActiveCfg = Release|x64
|
||||
{C6F3EA4C-9DB9-4FF8-8A89-75A5D9821277}.Release|x64.Build.0 = Release|x64
|
||||
{C6F3EA4C-9DB9-4FF8-8A89-75A5D9821277}.ReleaseConsole|Win32.ActiveCfg = Release|Win32
|
||||
{C6F3EA4C-9DB9-4FF8-8A89-75A5D9821277}.ReleaseConsole|Win32.Build.0 = Release|Win32
|
||||
{C6F3EA4C-9DB9-4FF8-8A89-75A5D9821277}.ReleaseConsole|x64.ActiveCfg = Release|x64
|
||||
{C6F3EA4C-9DB9-4FF8-8A89-75A5D9821277}.ReleaseConsole|x64.Build.0 = Release|x64
|
||||
{0241464B-2C21-4608-87F8-9994FC4A3CFB}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{0241464B-2C21-4608-87F8-9994FC4A3CFB}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{0241464B-2C21-4608-87F8-9994FC4A3CFB}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -97,10 +138,6 @@ Global
|
|||
{0241464B-2C21-4608-87F8-9994FC4A3CFB}.Release|Win32.Build.0 = Release|Win32
|
||||
{0241464B-2C21-4608-87F8-9994FC4A3CFB}.Release|x64.ActiveCfg = Release|x64
|
||||
{0241464B-2C21-4608-87F8-9994FC4A3CFB}.Release|x64.Build.0 = Release|x64
|
||||
{0241464B-2C21-4608-87F8-9994FC4A3CFB}.ReleaseConsole|Win32.ActiveCfg = Release|Win32
|
||||
{0241464B-2C21-4608-87F8-9994FC4A3CFB}.ReleaseConsole|Win32.Build.0 = Release|Win32
|
||||
{0241464B-2C21-4608-87F8-9994FC4A3CFB}.ReleaseConsole|x64.ActiveCfg = Release|x64
|
||||
{0241464B-2C21-4608-87F8-9994FC4A3CFB}.ReleaseConsole|x64.Build.0 = Release|x64
|
||||
{7792900A-4950-4E0B-9C34-A3449C6654E7}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{7792900A-4950-4E0B-9C34-A3449C6654E7}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{7792900A-4950-4E0B-9C34-A3449C6654E7}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -109,10 +146,6 @@ Global
|
|||
{7792900A-4950-4E0B-9C34-A3449C6654E7}.Release|Win32.Build.0 = Release|Win32
|
||||
{7792900A-4950-4E0B-9C34-A3449C6654E7}.Release|x64.ActiveCfg = Release|x64
|
||||
{7792900A-4950-4E0B-9C34-A3449C6654E7}.Release|x64.Build.0 = Release|x64
|
||||
{7792900A-4950-4E0B-9C34-A3449C6654E7}.ReleaseConsole|Win32.ActiveCfg = Release|Win32
|
||||
{7792900A-4950-4E0B-9C34-A3449C6654E7}.ReleaseConsole|Win32.Build.0 = Release|Win32
|
||||
{7792900A-4950-4E0B-9C34-A3449C6654E7}.ReleaseConsole|x64.ActiveCfg = Release|x64
|
||||
{7792900A-4950-4E0B-9C34-A3449C6654E7}.ReleaseConsole|x64.Build.0 = Release|x64
|
||||
{37915959-E023-426D-9B00-BAD16A28AB93}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{37915959-E023-426D-9B00-BAD16A28AB93}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{37915959-E023-426D-9B00-BAD16A28AB93}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -121,10 +154,6 @@ Global
|
|||
{37915959-E023-426D-9B00-BAD16A28AB93}.Release|Win32.Build.0 = Release|Win32
|
||||
{37915959-E023-426D-9B00-BAD16A28AB93}.Release|x64.ActiveCfg = Release|x64
|
||||
{37915959-E023-426D-9B00-BAD16A28AB93}.Release|x64.Build.0 = Release|x64
|
||||
{37915959-E023-426D-9B00-BAD16A28AB93}.ReleaseConsole|Win32.ActiveCfg = Release|Win32
|
||||
{37915959-E023-426D-9B00-BAD16A28AB93}.ReleaseConsole|Win32.Build.0 = Release|Win32
|
||||
{37915959-E023-426D-9B00-BAD16A28AB93}.ReleaseConsole|x64.ActiveCfg = Release|x64
|
||||
{37915959-E023-426D-9B00-BAD16A28AB93}.ReleaseConsole|x64.Build.0 = Release|x64
|
||||
{922C9ED2-4D11-47AF-A355-1AD5918BD20C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{922C9ED2-4D11-47AF-A355-1AD5918BD20C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{922C9ED2-4D11-47AF-A355-1AD5918BD20C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -133,10 +162,6 @@ Global
|
|||
{922C9ED2-4D11-47AF-A355-1AD5918BD20C}.Release|Win32.Build.0 = Release|Win32
|
||||
{922C9ED2-4D11-47AF-A355-1AD5918BD20C}.Release|x64.ActiveCfg = Release|x64
|
||||
{922C9ED2-4D11-47AF-A355-1AD5918BD20C}.Release|x64.Build.0 = Release|x64
|
||||
{922C9ED2-4D11-47AF-A355-1AD5918BD20C}.ReleaseConsole|Win32.ActiveCfg = Release|Win32
|
||||
{922C9ED2-4D11-47AF-A355-1AD5918BD20C}.ReleaseConsole|Win32.Build.0 = Release|Win32
|
||||
{922C9ED2-4D11-47AF-A355-1AD5918BD20C}.ReleaseConsole|x64.ActiveCfg = Release|x64
|
||||
{922C9ED2-4D11-47AF-A355-1AD5918BD20C}.ReleaseConsole|x64.Build.0 = Release|x64
|
||||
{4F7B97F6-1B8F-416C-A987-8DBA9B105F5D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{4F7B97F6-1B8F-416C-A987-8DBA9B105F5D}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{4F7B97F6-1B8F-416C-A987-8DBA9B105F5D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -145,10 +170,6 @@ Global
|
|||
{4F7B97F6-1B8F-416C-A987-8DBA9B105F5D}.Release|Win32.Build.0 = Release|Win32
|
||||
{4F7B97F6-1B8F-416C-A987-8DBA9B105F5D}.Release|x64.ActiveCfg = Release|x64
|
||||
{4F7B97F6-1B8F-416C-A987-8DBA9B105F5D}.Release|x64.Build.0 = Release|x64
|
||||
{4F7B97F6-1B8F-416C-A987-8DBA9B105F5D}.ReleaseConsole|Win32.ActiveCfg = Release|Win32
|
||||
{4F7B97F6-1B8F-416C-A987-8DBA9B105F5D}.ReleaseConsole|Win32.Build.0 = Release|Win32
|
||||
{4F7B97F6-1B8F-416C-A987-8DBA9B105F5D}.ReleaseConsole|x64.ActiveCfg = Release|x64
|
||||
{4F7B97F6-1B8F-416C-A987-8DBA9B105F5D}.ReleaseConsole|x64.Build.0 = Release|x64
|
||||
{C14F7B4B-9E35-409B-8956-0EFA2347104D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C14F7B4B-9E35-409B-8956-0EFA2347104D}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C14F7B4B-9E35-409B-8956-0EFA2347104D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -157,10 +178,6 @@ Global
|
|||
{C14F7B4B-9E35-409B-8956-0EFA2347104D}.Release|Win32.Build.0 = Release|Win32
|
||||
{C14F7B4B-9E35-409B-8956-0EFA2347104D}.Release|x64.ActiveCfg = Release|x64
|
||||
{C14F7B4B-9E35-409B-8956-0EFA2347104D}.Release|x64.Build.0 = Release|x64
|
||||
{C14F7B4B-9E35-409B-8956-0EFA2347104D}.ReleaseConsole|Win32.ActiveCfg = Release|Win32
|
||||
{C14F7B4B-9E35-409B-8956-0EFA2347104D}.ReleaseConsole|Win32.Build.0 = Release|Win32
|
||||
{C14F7B4B-9E35-409B-8956-0EFA2347104D}.ReleaseConsole|x64.ActiveCfg = Release|x64
|
||||
{C14F7B4B-9E35-409B-8956-0EFA2347104D}.ReleaseConsole|x64.Build.0 = Release|x64
|
||||
{60C0F067-F9C9-4ABF-91E2-C18F90CA72A1}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{60C0F067-F9C9-4ABF-91E2-C18F90CA72A1}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{60C0F067-F9C9-4ABF-91E2-C18F90CA72A1}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -169,10 +186,6 @@ Global
|
|||
{60C0F067-F9C9-4ABF-91E2-C18F90CA72A1}.Release|Win32.Build.0 = Release|Win32
|
||||
{60C0F067-F9C9-4ABF-91E2-C18F90CA72A1}.Release|x64.ActiveCfg = Release|x64
|
||||
{60C0F067-F9C9-4ABF-91E2-C18F90CA72A1}.Release|x64.Build.0 = Release|x64
|
||||
{60C0F067-F9C9-4ABF-91E2-C18F90CA72A1}.ReleaseConsole|Win32.ActiveCfg = Release|Win32
|
||||
{60C0F067-F9C9-4ABF-91E2-C18F90CA72A1}.ReleaseConsole|Win32.Build.0 = Release|Win32
|
||||
{60C0F067-F9C9-4ABF-91E2-C18F90CA72A1}.ReleaseConsole|x64.ActiveCfg = Release|x64
|
||||
{60C0F067-F9C9-4ABF-91E2-C18F90CA72A1}.ReleaseConsole|x64.Build.0 = Release|x64
|
||||
{BFB843F9-988D-4CA4-9293-0591CE825112}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{BFB843F9-988D-4CA4-9293-0591CE825112}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{BFB843F9-988D-4CA4-9293-0591CE825112}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -181,10 +194,6 @@ Global
|
|||
{BFB843F9-988D-4CA4-9293-0591CE825112}.Release|Win32.Build.0 = Release|Win32
|
||||
{BFB843F9-988D-4CA4-9293-0591CE825112}.Release|x64.ActiveCfg = Release|x64
|
||||
{BFB843F9-988D-4CA4-9293-0591CE825112}.Release|x64.Build.0 = Release|x64
|
||||
{BFB843F9-988D-4CA4-9293-0591CE825112}.ReleaseConsole|Win32.ActiveCfg = Release|Win32
|
||||
{BFB843F9-988D-4CA4-9293-0591CE825112}.ReleaseConsole|Win32.Build.0 = Release|Win32
|
||||
{BFB843F9-988D-4CA4-9293-0591CE825112}.ReleaseConsole|x64.ActiveCfg = Release|x64
|
||||
{BFB843F9-988D-4CA4-9293-0591CE825112}.ReleaseConsole|x64.Build.0 = Release|x64
|
||||
{2E2EBA37-6D73-40E2-89E3-A003B3156CA0}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2E2EBA37-6D73-40E2-89E3-A003B3156CA0}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{2E2EBA37-6D73-40E2-89E3-A003B3156CA0}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -193,10 +202,6 @@ Global
|
|||
{2E2EBA37-6D73-40E2-89E3-A003B3156CA0}.Release|Win32.Build.0 = Release|Win32
|
||||
{2E2EBA37-6D73-40E2-89E3-A003B3156CA0}.Release|x64.ActiveCfg = Release|x64
|
||||
{2E2EBA37-6D73-40E2-89E3-A003B3156CA0}.Release|x64.Build.0 = Release|x64
|
||||
{2E2EBA37-6D73-40E2-89E3-A003B3156CA0}.ReleaseConsole|Win32.ActiveCfg = Release|Win32
|
||||
{2E2EBA37-6D73-40E2-89E3-A003B3156CA0}.ReleaseConsole|Win32.Build.0 = Release|Win32
|
||||
{2E2EBA37-6D73-40E2-89E3-A003B3156CA0}.ReleaseConsole|x64.ActiveCfg = Release|x64
|
||||
{2E2EBA37-6D73-40E2-89E3-A003B3156CA0}.ReleaseConsole|x64.Build.0 = Release|x64
|
||||
{964A0E35-BBA0-450D-BAE7-1D35EB21FD1C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{964A0E35-BBA0-450D-BAE7-1D35EB21FD1C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{964A0E35-BBA0-450D-BAE7-1D35EB21FD1C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -205,10 +210,6 @@ Global
|
|||
{964A0E35-BBA0-450D-BAE7-1D35EB21FD1C}.Release|Win32.Build.0 = Release|Win32
|
||||
{964A0E35-BBA0-450D-BAE7-1D35EB21FD1C}.Release|x64.ActiveCfg = Release|x64
|
||||
{964A0E35-BBA0-450D-BAE7-1D35EB21FD1C}.Release|x64.Build.0 = Release|x64
|
||||
{964A0E35-BBA0-450D-BAE7-1D35EB21FD1C}.ReleaseConsole|Win32.ActiveCfg = Release|Win32
|
||||
{964A0E35-BBA0-450D-BAE7-1D35EB21FD1C}.ReleaseConsole|Win32.Build.0 = Release|Win32
|
||||
{964A0E35-BBA0-450D-BAE7-1D35EB21FD1C}.ReleaseConsole|x64.ActiveCfg = Release|x64
|
||||
{964A0E35-BBA0-450D-BAE7-1D35EB21FD1C}.ReleaseConsole|x64.Build.0 = Release|x64
|
||||
{93E531F7-A0B3-4DAE-9191-8B37A038731C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{93E531F7-A0B3-4DAE-9191-8B37A038731C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{93E531F7-A0B3-4DAE-9191-8B37A038731C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -217,10 +218,6 @@ Global
|
|||
{93E531F7-A0B3-4DAE-9191-8B37A038731C}.Release|Win32.Build.0 = Release|Win32
|
||||
{93E531F7-A0B3-4DAE-9191-8B37A038731C}.Release|x64.ActiveCfg = Release|x64
|
||||
{93E531F7-A0B3-4DAE-9191-8B37A038731C}.Release|x64.Build.0 = Release|x64
|
||||
{93E531F7-A0B3-4DAE-9191-8B37A038731C}.ReleaseConsole|Win32.ActiveCfg = Release|Win32
|
||||
{93E531F7-A0B3-4DAE-9191-8B37A038731C}.ReleaseConsole|Win32.Build.0 = Release|Win32
|
||||
{93E531F7-A0B3-4DAE-9191-8B37A038731C}.ReleaseConsole|x64.ActiveCfg = Release|x64
|
||||
{93E531F7-A0B3-4DAE-9191-8B37A038731C}.ReleaseConsole|x64.Build.0 = Release|x64
|
||||
{F0586B55-BD50-4E58-89A8-D957D941B4D7}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{F0586B55-BD50-4E58-89A8-D957D941B4D7}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{F0586B55-BD50-4E58-89A8-D957D941B4D7}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -229,10 +226,6 @@ Global
|
|||
{F0586B55-BD50-4E58-89A8-D957D941B4D7}.Release|Win32.Build.0 = Release|Win32
|
||||
{F0586B55-BD50-4E58-89A8-D957D941B4D7}.Release|x64.ActiveCfg = Release|x64
|
||||
{F0586B55-BD50-4E58-89A8-D957D941B4D7}.Release|x64.Build.0 = Release|x64
|
||||
{F0586B55-BD50-4E58-89A8-D957D941B4D7}.ReleaseConsole|Win32.ActiveCfg = Release|Win32
|
||||
{F0586B55-BD50-4E58-89A8-D957D941B4D7}.ReleaseConsole|Win32.Build.0 = Release|Win32
|
||||
{F0586B55-BD50-4E58-89A8-D957D941B4D7}.ReleaseConsole|x64.ActiveCfg = Release|x64
|
||||
{F0586B55-BD50-4E58-89A8-D957D941B4D7}.ReleaseConsole|x64.Build.0 = Release|x64
|
||||
{E0E8A6E0-EC75-4078-8ED9-35A72C39444C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{E0E8A6E0-EC75-4078-8ED9-35A72C39444C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{E0E8A6E0-EC75-4078-8ED9-35A72C39444C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -241,10 +234,166 @@ Global
|
|||
{E0E8A6E0-EC75-4078-8ED9-35A72C39444C}.Release|Win32.Build.0 = Release|Win32
|
||||
{E0E8A6E0-EC75-4078-8ED9-35A72C39444C}.Release|x64.ActiveCfg = Release|x64
|
||||
{E0E8A6E0-EC75-4078-8ED9-35A72C39444C}.Release|x64.Build.0 = Release|x64
|
||||
{E0E8A6E0-EC75-4078-8ED9-35A72C39444C}.ReleaseConsole|Win32.ActiveCfg = Release|Win32
|
||||
{E0E8A6E0-EC75-4078-8ED9-35A72C39444C}.ReleaseConsole|Win32.Build.0 = Release|Win32
|
||||
{E0E8A6E0-EC75-4078-8ED9-35A72C39444C}.ReleaseConsole|x64.ActiveCfg = Release|x64
|
||||
{E0E8A6E0-EC75-4078-8ED9-35A72C39444C}.ReleaseConsole|x64.Build.0 = Release|x64
|
||||
{DD376932-B4BA-4C44-A146-C2E39A22F56D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{DD376932-B4BA-4C44-A146-C2E39A22F56D}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{DD376932-B4BA-4C44-A146-C2E39A22F56D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{DD376932-B4BA-4C44-A146-C2E39A22F56D}.Debug|x64.Build.0 = Debug|x64
|
||||
{DD376932-B4BA-4C44-A146-C2E39A22F56D}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{DD376932-B4BA-4C44-A146-C2E39A22F56D}.Release|Win32.Build.0 = Release|Win32
|
||||
{DD376932-B4BA-4C44-A146-C2E39A22F56D}.Release|x64.ActiveCfg = Release|x64
|
||||
{DD376932-B4BA-4C44-A146-C2E39A22F56D}.Release|x64.Build.0 = Release|x64
|
||||
{5FCA3894-FEB8-4C7F-B5FA-BAFF2E69F619}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{5FCA3894-FEB8-4C7F-B5FA-BAFF2E69F619}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{5FCA3894-FEB8-4C7F-B5FA-BAFF2E69F619}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5FCA3894-FEB8-4C7F-B5FA-BAFF2E69F619}.Debug|x64.Build.0 = Debug|x64
|
||||
{5FCA3894-FEB8-4C7F-B5FA-BAFF2E69F619}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{5FCA3894-FEB8-4C7F-B5FA-BAFF2E69F619}.Release|Win32.Build.0 = Release|Win32
|
||||
{5FCA3894-FEB8-4C7F-B5FA-BAFF2E69F619}.Release|x64.ActiveCfg = Release|x64
|
||||
{5FCA3894-FEB8-4C7F-B5FA-BAFF2E69F619}.Release|x64.Build.0 = Release|x64
|
||||
{50D338F5-BC93-B42B-85CE-FDA8F14DF907}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{50D338F5-BC93-B42B-85CE-FDA8F14DF907}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{50D338F5-BC93-B42B-85CE-FDA8F14DF907}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{50D338F5-BC93-B42B-85CE-FDA8F14DF907}.Debug|x64.Build.0 = Debug|x64
|
||||
{50D338F5-BC93-B42B-85CE-FDA8F14DF907}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{50D338F5-BC93-B42B-85CE-FDA8F14DF907}.Release|Win32.Build.0 = Release|Win32
|
||||
{50D338F5-BC93-B42B-85CE-FDA8F14DF907}.Release|x64.ActiveCfg = Release|x64
|
||||
{50D338F5-BC93-B42B-85CE-FDA8F14DF907}.Release|x64.Build.0 = Release|x64
|
||||
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.Build.0 = Debug|x64
|
||||
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.Build.0 = Release|Win32
|
||||
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.ActiveCfg = Release|x64
|
||||
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.Build.0 = Release|x64
|
||||
{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|x64.Build.0 = Debug|x64
|
||||
{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|Win32.Build.0 = Release|Win32
|
||||
{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|x64.ActiveCfg = Release|x64
|
||||
{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|x64.Build.0 = Release|x64
|
||||
{54E670E2-9A44-4816-B4A4-1EC2C8F248AF}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{54E670E2-9A44-4816-B4A4-1EC2C8F248AF}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{54E670E2-9A44-4816-B4A4-1EC2C8F248AF}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{54E670E2-9A44-4816-B4A4-1EC2C8F248AF}.Debug|x64.Build.0 = Debug|x64
|
||||
{54E670E2-9A44-4816-B4A4-1EC2C8F248AF}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{54E670E2-9A44-4816-B4A4-1EC2C8F248AF}.Release|Win32.Build.0 = Release|Win32
|
||||
{54E670E2-9A44-4816-B4A4-1EC2C8F248AF}.Release|x64.ActiveCfg = Release|x64
|
||||
{54E670E2-9A44-4816-B4A4-1EC2C8F248AF}.Release|x64.Build.0 = Release|x64
|
||||
{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|x64.Build.0 = Debug|x64
|
||||
{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Release|Win32.Build.0 = Release|Win32
|
||||
{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Release|x64.ActiveCfg = Release|x64
|
||||
{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Release|x64.Build.0 = Release|x64
|
||||
{F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Debug|x64.Build.0 = Debug|x64
|
||||
{F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Release|Win32.Build.0 = Release|Win32
|
||||
{F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Release|x64.ActiveCfg = Release|x64
|
||||
{F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Release|x64.Build.0 = Release|x64
|
||||
{DDDBD07D-DC76-4AF6-8D02-3E2DEB6EE255}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{DDDBD07D-DC76-4AF6-8D02-3E2DEB6EE255}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{DDDBD07D-DC76-4AF6-8D02-3E2DEB6EE255}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{DDDBD07D-DC76-4AF6-8D02-3E2DEB6EE255}.Debug|x64.Build.0 = Debug|x64
|
||||
{DDDBD07D-DC76-4AF6-8D02-3E2DEB6EE255}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{DDDBD07D-DC76-4AF6-8D02-3E2DEB6EE255}.Release|Win32.Build.0 = Release|Win32
|
||||
{DDDBD07D-DC76-4AF6-8D02-3E2DEB6EE255}.Release|x64.ActiveCfg = Release|x64
|
||||
{DDDBD07D-DC76-4AF6-8D02-3E2DEB6EE255}.Release|x64.Build.0 = Release|x64
|
||||
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x64.Build.0 = Debug|x64
|
||||
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|Win32.Build.0 = Release|Win32
|
||||
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|x64.ActiveCfg = Release|x64
|
||||
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|x64.Build.0 = Release|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|x64.Build.0 = Debug|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|Win32.Build.0 = Release|Win32
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|x64.ActiveCfg = Release|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|x64.Build.0 = Release|x64
|
||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|x64.Build.0 = Debug|x64
|
||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|Win32.Build.0 = Release|Win32
|
||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|x64.ActiveCfg = Release|x64
|
||||
{4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|x64.Build.0 = Release|x64
|
||||
{EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Debug|x64.Build.0 = Debug|x64
|
||||
{EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Release|Win32.Build.0 = Release|Win32
|
||||
{EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Release|x64.ActiveCfg = Release|x64
|
||||
{EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Release|x64.Build.0 = Release|x64
|
||||
{B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Debug|x64.Build.0 = Debug|x64
|
||||
{B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Release|Win32.Build.0 = Release|Win32
|
||||
{B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Release|x64.ActiveCfg = Release|x64
|
||||
{B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Release|x64.Build.0 = Release|x64
|
||||
{15CBFEFF-7965-41F5-B4E2-21E8795C9159}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{15CBFEFF-7965-41F5-B4E2-21E8795C9159}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{15CBFEFF-7965-41F5-B4E2-21E8795C9159}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{15CBFEFF-7965-41F5-B4E2-21E8795C9159}.Debug|x64.Build.0 = Debug|x64
|
||||
{15CBFEFF-7965-41F5-B4E2-21E8795C9159}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{15CBFEFF-7965-41F5-B4E2-21E8795C9159}.Release|Win32.Build.0 = Release|Win32
|
||||
{15CBFEFF-7965-41F5-B4E2-21E8795C9159}.Release|x64.ActiveCfg = Release|x64
|
||||
{15CBFEFF-7965-41F5-B4E2-21E8795C9159}.Release|x64.Build.0 = Release|x64
|
||||
{CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|x64.Build.0 = Debug|x64
|
||||
{CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|Win32.Build.0 = Release|Win32
|
||||
{CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|x64.ActiveCfg = Release|x64
|
||||
{CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|x64.Build.0 = Release|x64
|
||||
{3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|x64.Build.0 = Debug|x64
|
||||
{3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|Win32.Build.0 = Release|Win32
|
||||
{3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|x64.ActiveCfg = Release|x64
|
||||
{3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|x64.Build.0 = Release|x64
|
||||
{67CAA87B-7CF1-4F93-BB67-21C513F40803}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{67CAA87B-7CF1-4F93-BB67-21C513F40803}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{67CAA87B-7CF1-4F93-BB67-21C513F40803}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{67CAA87B-7CF1-4F93-BB67-21C513F40803}.Debug|x64.Build.0 = Debug|x64
|
||||
{67CAA87B-7CF1-4F93-BB67-21C513F40803}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{67CAA87B-7CF1-4F93-BB67-21C513F40803}.Release|Win32.Build.0 = Release|Win32
|
||||
{67CAA87B-7CF1-4F93-BB67-21C513F40803}.Release|x64.ActiveCfg = Release|x64
|
||||
{67CAA87B-7CF1-4F93-BB67-21C513F40803}.Release|x64.Build.0 = Release|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.Build.0 = Debug|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.ActiveCfg = Release|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.Build.0 = Release|x64
|
||||
{EA1D1B51-F067-3C93-8F54-669095725F4B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{EA1D1B51-F067-3C93-8F54-669095725F4B}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{EA1D1B51-F067-3C93-8F54-669095725F4B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{EA1D1B51-F067-3C93-8F54-669095725F4B}.Debug|x64.Build.0 = Debug|x64
|
||||
{EA1D1B51-F067-3C93-8F54-669095725F4B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{EA1D1B51-F067-3C93-8F54-669095725F4B}.Release|Win32.Build.0 = Release|Win32
|
||||
{EA1D1B51-F067-3C93-8F54-669095725F4B}.Release|x64.ActiveCfg = Release|x64
|
||||
{EA1D1B51-F067-3C93-8F54-669095725F4B}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -265,6 +414,29 @@ Global
|
|||
{93E531F7-A0B3-4DAE-9191-8B37A038731C} = {8286A76F-269C-4C17-B8AE-240AFCC1A0BC}
|
||||
{F0586B55-BD50-4E58-89A8-D957D941B4D7} = {8286A76F-269C-4C17-B8AE-240AFCC1A0BC}
|
||||
{E0E8A6E0-EC75-4078-8ED9-35A72C39444C} = {8286A76F-269C-4C17-B8AE-240AFCC1A0BC}
|
||||
{DD376932-B4BA-4C44-A146-C2E39A22F56D} = {178D2820-C8AE-4894-82A5-454A43F7AD21}
|
||||
{5FCA3894-FEB8-4C7F-B5FA-BAFF2E69F619} = {8B78C654-0550-43A0-B0B0-82304584AB3F}
|
||||
{50D338F5-BC93-B42B-85CE-FDA8F14DF907} = {8B78C654-0550-43A0-B0B0-82304584AB3F}
|
||||
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {8B78C654-0550-43A0-B0B0-82304584AB3F}
|
||||
{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} = {8B78C654-0550-43A0-B0B0-82304584AB3F}
|
||||
{54E670E2-9A44-4816-B4A4-1EC2C8F248AF} = {8B78C654-0550-43A0-B0B0-82304584AB3F}
|
||||
{2BD5534E-00E2-4BEA-AC96-D9A92EA24696} = {8B78C654-0550-43A0-B0B0-82304584AB3F}
|
||||
{F7E944B3-0815-40CD-B3E4-90B2A15B0E33} = {8B78C654-0550-43A0-B0B0-82304584AB3F}
|
||||
{DDDBD07D-DC76-4AF6-8D02-3E2DEB6EE255} = {8B78C654-0550-43A0-B0B0-82304584AB3F}
|
||||
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1} = {C9B5FF09-339F-46B2-BEE1-4704283CEFAC}
|
||||
{C9B5FF09-339F-46B2-BEE1-4704283CEFAC} = {8B78C654-0550-43A0-B0B0-82304584AB3F}
|
||||
{43E7C20B-0BE5-4774-930A-B875BB50A587} = {8B78C654-0550-43A0-B0B0-82304584AB3F}
|
||||
{4C3F0F90-CB04-4AC3-B49A-AD8CE115AC2A} = {8B78C654-0550-43A0-B0B0-82304584AB3F}
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E} = {C9B5FF09-339F-46B2-BEE1-4704283CEFAC}
|
||||
{4CEFBC84-C215-11DB-8314-0800200C9A66} = {43E7C20B-0BE5-4774-930A-B875BB50A587}
|
||||
{EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F} = {43E7C20B-0BE5-4774-930A-B875BB50A587}
|
||||
{B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C} = {43E7C20B-0BE5-4774-930A-B875BB50A587}
|
||||
{15CBFEFF-7965-41F5-B4E2-21E8795C9159} = {43E7C20B-0BE5-4774-930A-B875BB50A587}
|
||||
{CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC} = {43E7C20B-0BE5-4774-930A-B875BB50A587}
|
||||
{3A214E06-B95E-4D61-A291-1F8DF2EC10FD} = {43E7C20B-0BE5-4774-930A-B875BB50A587}
|
||||
{67CAA87B-7CF1-4F93-BB67-21C513F40803} = {43E7C20B-0BE5-4774-930A-B875BB50A587}
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} = {4C3F0F90-CB04-4AC3-B49A-AD8CE115AC2A}
|
||||
{EA1D1B51-F067-3C93-8F54-669095725F4B} = {C9B5FF09-339F-46B2-BEE1-4704283CEFAC}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {E6EA96F6-C769-42B8-B9C2-DDF3F46F5FA9}
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
/ReleaseConsole
|
||||
/x64
|
||||
/Release
|
|
@ -1,231 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="ReleaseConsole|Win32">
|
||||
<Configuration>ReleaseConsole</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="ReleaseConsole|x64">
|
||||
<Configuration>ReleaseConsole</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{B2301BEF-1ED1-4724-BE1F-4BEEA697227A}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>GGELUA</RootNamespace>
|
||||
<ProjectName>GGELUA</ProjectName>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseConsole|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseConsole|x64'" Label="Configuration">
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</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 Condition="'$(Configuration)|$(Platform)'=='ReleaseConsole|Win32'" Label="PropertySheets">
|
||||
<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>
|
||||
<IncludePath>..\inc_lua;..\inc_gge;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>..\lib;$(LibraryPath)</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseConsole|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<TargetName>$(ProjectName)c</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseConsole|x64'">
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<TargetName>$(ProjectName)c</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;LUA_BUILD_AS_DLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)include\sdl;$(SolutionDir)include\zlib;$(SolutionDir)\luadll;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>lua54.lib;zlib.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)library\x86</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(OutDir)"$(TargetName).exe "$(SolutionDir)"R32\$(TargetName).exe</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseConsole|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CONSOLE;LUA_BUILD_AS_DLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)include\sdl;$(SolutionDir)include\zlib;$(SolutionDir)\luadll;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>lua54.lib;zlib.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)library\x86</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y $(OutDir)$(TargetName).exe $(SolutionDir)R32</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)include\sdl;$(SolutionDir)include\zlib;$(SolutionDir)\luadll;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>LUA_BUILD_AS_DLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<DisableSpecificWarnings>5105</DisableSpecificWarnings>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>lua54_64.lib;zlib_64.lib;SDL2_64.lib;SDL2main_64.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)library\x64</AdditionalLibraryDirectories>
|
||||
<ImportLibrary>
|
||||
</ImportLibrary>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<DelayLoadDLLs>
|
||||
</DelayLoadDLLs>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(OutDir)"$(TargetName).exe "$(SolutionDir)"R64\$(TargetName).exe</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseConsole|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)include\sdl;$(SolutionDir)include\zlib;$(SolutionDir)\luadll</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_CONSOLE;LUA_BUILD_AS_DLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<DisableSpecificWarnings>5105</DisableSpecificWarnings>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>lua54_64.lib;zlib_64.lib;SDL2_64.lib;SDL2main_64.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)library\x64</AdditionalLibraryDirectories>
|
||||
<ImportLibrary>
|
||||
</ImportLibrary>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<DelayLoadDLLs>
|
||||
</DelayLoadDLLs>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(OutDir)"$(TargetName).exe "$(SolutionDir)"R64\$(TargetName).exe</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Link>
|
||||
<AdditionalDependencies>lua54_64.lib;zlib_64.lib;SDL2_64.lib;SDL2main_64.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)library\x64</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)include\sdl;$(SolutionDir)include\zlib;$(SolutionDir)\luadll</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
|
||||
<Optimization>Disabled</Optimization>
|
||||
</ClCompile>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(OutDir)"$(TargetName).exe "$(SolutionDir)"R64\$(TargetName).exe</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="main.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="GGELUA.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="logo.ico" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
|
@ -1,26 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LocalDebuggerWorkingDirectory>..</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseConsole|Win32'">
|
||||
<LocalDebuggerWorkingDirectory>..</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseConsole|x64'">
|
||||
<LocalDebuggerCommand>$(SolutionDir)R64\$(TargetName).exe</LocalDebuggerCommand>
|
||||
<LocalDebuggerWorkingDirectory>$(SolutionDir)R64</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LocalDebuggerCommand>$(SolutionDir)R64\$(TargetName).exe</LocalDebuggerCommand>
|
||||
<LocalDebuggerWorkingDirectory>$(SolutionDir)R64</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LocalDebuggerCommand>$(SolutionDir)R64\$(TargetName).exe</LocalDebuggerCommand>
|
||||
<LocalDebuggerWorkingDirectory>$(SolutionDir)R64</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -1,2 +0,0 @@
|
|||
/x64
|
||||
/Release
|
|
@ -1,338 +0,0 @@
|
|||
/*
|
||||
* Copyright: JessMA Open Source (ldcsaa@gmail.com)
|
||||
*
|
||||
* Author : Bruce Liang
|
||||
* Website : https://github.com/ldcsaa
|
||||
* Project : https://github.com/ldcsaa/HP-Socket
|
||||
* Blog : http://www.cnblogs.com/ldcsaa
|
||||
* Wiki : http://www.oschina.net/p/hp-socket
|
||||
* QQ Group : 44636872, 75375912
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "HPSocket.h"
|
||||
|
||||
#ifdef _SSL_SUPPORT
|
||||
|
||||
/*****************************************************************************************************************************************************/
|
||||
/******************************************************************** SSL Exports ********************************************************************/
|
||||
/*****************************************************************************************************************************************************/
|
||||
|
||||
/**************************************************/
|
||||
/************** HPSocket-SSL 导出函数 **************/
|
||||
|
||||
// 创建 SSL ITcpServer 对象
|
||||
HPSOCKET_API ITcpServer* HP_Create_SSLServer(ITcpServerListener* pListener);
|
||||
// 创建 SSL ITcpAgent 对象
|
||||
HPSOCKET_API ITcpAgent* HP_Create_SSLAgent(ITcpAgentListener* pListener);
|
||||
// 创建 SSL ITcpClient 对象
|
||||
HPSOCKET_API ITcpClient* HP_Create_SSLClient(ITcpClientListener* pListener);
|
||||
// 创建 SSL ITcpPullServer 对象
|
||||
HPSOCKET_API ITcpPullServer* HP_Create_SSLPullServer(ITcpServerListener* pListener);
|
||||
// 创建 SSL ITcpPullAgent 对象
|
||||
HPSOCKET_API ITcpPullAgent* HP_Create_SSLPullAgent(ITcpAgentListener* pListener);
|
||||
// 创建 SSL ITcpPullClient 对象
|
||||
HPSOCKET_API ITcpPullClient* HP_Create_SSLPullClient(ITcpClientListener* pListener);
|
||||
// 创建 SSL ITcpPackServer 对象
|
||||
HPSOCKET_API ITcpPackServer* HP_Create_SSLPackServer(ITcpServerListener* pListener);
|
||||
// 创建 SSL ITcpPackAgent 对象
|
||||
HPSOCKET_API ITcpPackAgent* HP_Create_SSLPackAgent(ITcpAgentListener* pListener);
|
||||
// 创建 SSL ITcpPackClient 对象
|
||||
HPSOCKET_API ITcpPackClient* HP_Create_SSLPackClient(ITcpClientListener* pListener);
|
||||
|
||||
// 销毁 SSL ITcpServer 对象
|
||||
HPSOCKET_API void HP_Destroy_SSLServer(ITcpServer* pServer);
|
||||
// 销毁 SSL ITcpAgent 对象
|
||||
HPSOCKET_API void HP_Destroy_SSLAgent(ITcpAgent* pAgent);
|
||||
// 销毁 SSL ITcpClient 对象
|
||||
HPSOCKET_API void HP_Destroy_SSLClient(ITcpClient* pClient);
|
||||
// 销毁 SSL ITcpPullServer 对象
|
||||
HPSOCKET_API void HP_Destroy_SSLPullServer(ITcpPullServer* pServer);
|
||||
// 销毁 SSL ITcpPullAgent 对象
|
||||
HPSOCKET_API void HP_Destroy_SSLPullAgent(ITcpPullAgent* pAgent);
|
||||
// 销毁 SSL ITcpPullClient 对象
|
||||
HPSOCKET_API void HP_Destroy_SSLPullClient(ITcpPullClient* pClient);
|
||||
// 销毁 SSL ITcpPackServer 对象
|
||||
HPSOCKET_API void HP_Destroy_SSLPackServer(ITcpPackServer* pServer);
|
||||
// 销毁 SSL ITcpPackAgent 对象
|
||||
HPSOCKET_API void HP_Destroy_SSLPackAgent(ITcpPackAgent* pAgent);
|
||||
// 销毁 SSL ITcpPackClient 对象
|
||||
HPSOCKET_API void HP_Destroy_SSLPackClient(ITcpPackClient* pClient);
|
||||
|
||||
// SSL ITcpServer 对象创建器
|
||||
struct SSLServer_Creator
|
||||
{
|
||||
static ITcpServer* Create(ITcpServerListener* pListener)
|
||||
{
|
||||
return HP_Create_SSLServer(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpServer* pServer)
|
||||
{
|
||||
HP_Destroy_SSLServer(pServer);
|
||||
}
|
||||
};
|
||||
|
||||
// SSL ITcpAgent 对象创建器
|
||||
struct SSLAgent_Creator
|
||||
{
|
||||
static ITcpAgent* Create(ITcpAgentListener* pListener)
|
||||
{
|
||||
return HP_Create_SSLAgent(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpAgent* pAgent)
|
||||
{
|
||||
HP_Destroy_SSLAgent(pAgent);
|
||||
}
|
||||
};
|
||||
|
||||
// SSL ITcpClient 对象创建器
|
||||
struct SSLClient_Creator
|
||||
{
|
||||
static ITcpClient* Create(ITcpClientListener* pListener)
|
||||
{
|
||||
return HP_Create_SSLClient(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpClient* pClient)
|
||||
{
|
||||
HP_Destroy_SSLClient(pClient);
|
||||
}
|
||||
};
|
||||
|
||||
// SSL ITcpPullServer 对象创建器
|
||||
struct SSLPullServer_Creator
|
||||
{
|
||||
static ITcpPullServer* Create(ITcpServerListener* pListener)
|
||||
{
|
||||
return HP_Create_SSLPullServer(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpPullServer* pServer)
|
||||
{
|
||||
HP_Destroy_SSLPullServer(pServer);
|
||||
}
|
||||
};
|
||||
|
||||
// SSL ITcpPullAgent 对象创建器
|
||||
struct SSLPullAgent_Creator
|
||||
{
|
||||
static ITcpPullAgent* Create(ITcpAgentListener* pListener)
|
||||
{
|
||||
return HP_Create_SSLPullAgent(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpPullAgent* pAgent)
|
||||
{
|
||||
HP_Destroy_SSLPullAgent(pAgent);
|
||||
}
|
||||
};
|
||||
|
||||
// SSL ITcpPullClient 对象创建器
|
||||
struct SSLPullClient_Creator
|
||||
{
|
||||
static ITcpPullClient* Create(ITcpClientListener* pListener)
|
||||
{
|
||||
return HP_Create_SSLPullClient(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpPullClient* pClient)
|
||||
{
|
||||
HP_Destroy_SSLPullClient(pClient);
|
||||
}
|
||||
};
|
||||
|
||||
// SSL ITcpPackServer 对象创建器
|
||||
struct SSLPackServer_Creator
|
||||
{
|
||||
static ITcpPackServer* Create(ITcpServerListener* pListener)
|
||||
{
|
||||
return HP_Create_SSLPackServer(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpPackServer* pServer)
|
||||
{
|
||||
HP_Destroy_SSLPackServer(pServer);
|
||||
}
|
||||
};
|
||||
|
||||
// SSL ITcpPackAgent 对象创建器
|
||||
struct SSLPackAgent_Creator
|
||||
{
|
||||
static ITcpPackAgent* Create(ITcpAgentListener* pListener)
|
||||
{
|
||||
return HP_Create_SSLPackAgent(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpPackAgent* pAgent)
|
||||
{
|
||||
HP_Destroy_SSLPackAgent(pAgent);
|
||||
}
|
||||
};
|
||||
|
||||
// SSL ITcpPackClient 对象创建器
|
||||
struct SSLPackClient_Creator
|
||||
{
|
||||
static ITcpPackClient* Create(ITcpClientListener* pListener)
|
||||
{
|
||||
return HP_Create_SSLPackClient(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpPackClient* pClient)
|
||||
{
|
||||
HP_Destroy_SSLPackClient(pClient);
|
||||
}
|
||||
};
|
||||
|
||||
// SSL ITcpServer 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpServer, ITcpServerListener, SSLServer_Creator> CSSLServerPtr;
|
||||
// SSL ITcpAgent 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpAgent, ITcpAgentListener, SSLAgent_Creator> CSSLAgentPtr;
|
||||
// SSL ITcpClient 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpClient, ITcpClientListener, SSLClient_Creator> CSSLClientPtr;
|
||||
// SSL ITcpPullServer 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpPullServer, ITcpServerListener, SSLPullServer_Creator> CSSLPullServerPtr;
|
||||
// SSL ITcpPullAgent 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpPullAgent, ITcpAgentListener, SSLPullAgent_Creator> CSSLPullAgentPtr;
|
||||
// SSL ITcpPullClient 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpPullClient, ITcpClientListener, SSLPullClient_Creator> CSSLPullClientPtr;
|
||||
// SSL ITcpPackServer 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpPackServer, ITcpServerListener, SSLPackServer_Creator> CSSLPackServerPtr;
|
||||
// SSL ITcpPackAgent 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpPackAgent, ITcpAgentListener, SSLPackAgent_Creator> CSSLPackAgentPtr;
|
||||
// SSL ITcpPackClient 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpPackClient, ITcpClientListener, SSLPackClient_Creator> CSSLPackClientPtr;
|
||||
|
||||
/*****************************************************************************************************************************************************/
|
||||
/*************************************************************** Global Function Exports *************************************************************/
|
||||
/*****************************************************************************************************************************************************/
|
||||
|
||||
/*
|
||||
* 名称:SNI 默认回调函数
|
||||
* 描述:SSL Server 的 SetupSSLContext 方法中如果不指定 SNI 回调函数则使用此 SNI 默认回调函数
|
||||
*
|
||||
* 参数: lpszServerName -- 请求域名
|
||||
* pContext -- SSL Context 对象
|
||||
*
|
||||
* 返回值:SNI 主机证书对应的索引
|
||||
*/
|
||||
HPSOCKET_API int __HP_CALL HP_SSL_DefaultServerNameCallback(LPCTSTR lpszServerName, PVOID pContext);
|
||||
|
||||
/*
|
||||
* 名称:清理线程局部环境 SSL 资源
|
||||
* 描述:任何一个操作 SSL 的线程,通信结束时都需要清理线程局部环境 SSL 资源
|
||||
* 1、主线程和 HP-Socket 工作线程在通信结束时会自动清理线程局部环境 SSL 资源。因此,一般情况下不必手工调用本方法
|
||||
* 2、特殊情况下,当自定义线程参与 HP-Socket 通信操作并检查到 SSL 内存泄漏时,需在每次通信结束时自定义线程调用本方法
|
||||
*
|
||||
* 参数: dwThreadID -- 线程 ID(0:当前线程)
|
||||
*
|
||||
* 返回值:无
|
||||
*/
|
||||
HPSOCKET_API void HP_SSL_RemoveThreadLocalState(DWORD dwThreadID);
|
||||
|
||||
/*****************************************************************************************************************************************************/
|
||||
/******************************************************************** HTTPS Exports ******************************************************************/
|
||||
/*****************************************************************************************************************************************************/
|
||||
|
||||
#ifdef _HTTP_SUPPORT
|
||||
|
||||
// 创建 IHttpsServer 对象
|
||||
HPSOCKET_API IHttpServer* HP_Create_HttpsServer(IHttpServerListener* pListener);
|
||||
// 创建 IHttpsAgent 对象
|
||||
HPSOCKET_API IHttpAgent* HP_Create_HttpsAgent(IHttpAgentListener* pListener);
|
||||
// 创建 IHttpsClient 对象
|
||||
HPSOCKET_API IHttpClient* HP_Create_HttpsClient(IHttpClientListener* pListener);
|
||||
// 创建 IHttpsSyncClient 对象
|
||||
HPSOCKET_API IHttpSyncClient* HP_Create_HttpsSyncClient(IHttpClientListener* pListener);
|
||||
|
||||
// 销毁 IHttpsServer 对象
|
||||
HPSOCKET_API void HP_Destroy_HttpsServer(IHttpServer* pServer);
|
||||
// 销毁 IHttpsAgent 对象
|
||||
HPSOCKET_API void HP_Destroy_HttpsAgent(IHttpAgent* pAgent);
|
||||
// 销毁 IHttpsClient 对象
|
||||
HPSOCKET_API void HP_Destroy_HttpsClient(IHttpClient* pClient);
|
||||
// 销毁 IHttpsSyncClient 对象
|
||||
HPSOCKET_API void HP_Destroy_HttpsSyncClient(IHttpSyncClient* pClient);
|
||||
|
||||
// IHttpsServer 对象创建器
|
||||
struct HttpsServer_Creator
|
||||
{
|
||||
static IHttpServer* Create(IHttpServerListener* pListener)
|
||||
{
|
||||
return HP_Create_HttpsServer(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(IHttpServer* pServer)
|
||||
{
|
||||
HP_Destroy_HttpsServer(pServer);
|
||||
}
|
||||
};
|
||||
|
||||
// IHttpsAgent 对象创建器
|
||||
struct HttpsAgent_Creator
|
||||
{
|
||||
static IHttpAgent* Create(IHttpAgentListener* pListener)
|
||||
{
|
||||
return HP_Create_HttpsAgent(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(IHttpAgent* pAgent)
|
||||
{
|
||||
HP_Destroy_HttpsAgent(pAgent);
|
||||
}
|
||||
};
|
||||
|
||||
// IHttpsClient 对象创建器
|
||||
struct HttpsClient_Creator
|
||||
{
|
||||
static IHttpClient* Create(IHttpClientListener* pListener)
|
||||
{
|
||||
return HP_Create_HttpsClient(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(IHttpClient* pClient)
|
||||
{
|
||||
HP_Destroy_HttpsClient(pClient);
|
||||
}
|
||||
};
|
||||
|
||||
// IHttpsSyncClient 对象创建器
|
||||
struct HttpsSyncClient_Creator
|
||||
{
|
||||
static IHttpSyncClient* Create(IHttpClientListener* pListener)
|
||||
{
|
||||
return HP_Create_HttpsSyncClient(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(IHttpSyncClient* pClient)
|
||||
{
|
||||
HP_Destroy_HttpsSyncClient(pClient);
|
||||
}
|
||||
};
|
||||
|
||||
// IHttpsServer 对象智能指针
|
||||
typedef CHPSocketPtr<IHttpServer, IHttpServerListener, HttpsServer_Creator> CHttpsServerPtr;
|
||||
// IHttpsAgent 对象智能指针
|
||||
typedef CHPSocketPtr<IHttpAgent, IHttpAgentListener, HttpsAgent_Creator> CHttpsAgentPtr;
|
||||
// IHttpsClient 对象智能指针
|
||||
typedef CHPSocketPtr<IHttpClient, IHttpClientListener, HttpsClient_Creator> CHttpsClientPtr;
|
||||
// IHttpsSyncClient 对象智能指针
|
||||
typedef CHPSocketPtr<IHttpSyncClient, IHttpClientListener, HttpsSyncClient_Creator> CHttpsSyncClientPtr;
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
|
@ -1,795 +0,0 @@
|
|||
/*
|
||||
* Copyright: JessMA Open Source (ldcsaa@gmail.com)
|
||||
*
|
||||
* Author : Bruce Liang
|
||||
* Website : https://github.com/ldcsaa
|
||||
* Project : https://github.com/ldcsaa/HP-Socket
|
||||
* Blog : http://www.cnblogs.com/ldcsaa
|
||||
* Wiki : http://www.oschina.net/p/hp-socket
|
||||
* QQ Group : 44636872, 75375912
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
Module: HPSocket
|
||||
|
||||
Usage:
|
||||
方法一:
|
||||
--------------------------------------------------------------------------------------
|
||||
0. 应用程序包含 HPTypeDef.h / SocketInterface.h / HPSocket.h 头文件
|
||||
1. 调用 HP_Create_Xxx() 函数创建 HPSocket 对象
|
||||
2. 使用完毕后调用 HP_Destroy_Xxx() 函数销毁 HPSocket 对象
|
||||
|
||||
方法二:
|
||||
--------------------------------------------------------------------------------------
|
||||
0. 应用程序包含 SocketInterface.h 和 HPSocket.h 头文件
|
||||
1. 创建 CXxxPtr 智能指针,通过智能指针使用 HPSocket 对象
|
||||
|
||||
Release:
|
||||
<-- 动态链接库 -->
|
||||
1. x86/HPSocket.dll - (32位/MBCS/Release)
|
||||
2. x86/HPSocket_D.dll - (32位/MBCS/DeBug)
|
||||
3. x86/HPSocket_U.dll - (32位/UNICODE/Release)
|
||||
4. x86/HPSocket_UD.dll - (32位/UNICODE/DeBug)
|
||||
5. x64/HPSocket.dll - (64位/MBCS/Release)
|
||||
6. x64/HPSocket_D.dll - (64位/MBCS/DeBug)
|
||||
7. x64/HPSocket_U.dll - (64位/UNICODE/Release)
|
||||
8. x64/HPSocket_UD.dll - (64位/UNICODE/DeBug)
|
||||
|
||||
<-- 静态链接库 -->
|
||||
!!注意!!:使用 HPSocket 静态库时,需要在工程属性中定义预处理宏 -> HPSOCKET_STATIC_LIB
|
||||
1. x86/static/HPSocket.lib - (32位/MBCS/Release)
|
||||
2. x86/static/HPSocket_D.lib - (32位/MBCS/DeBug)
|
||||
3. x86/static/HPSocket_U.lib - (32位/UNICODE/Release)
|
||||
4. x86/static/HPSocket_UD.lib - (32位/UNICODE/DeBug)
|
||||
5. x64/static/HPSocket.lib - (64位/MBCS/Release)
|
||||
6. x64/static/HPSocket_D.lib - (64位/MBCS/DeBug)
|
||||
7. x64/static/HPSocket_U.lib - (64位/UNICODE/Release)
|
||||
8. x64/static/HPSocket_UD.lib - (64位/UNICODE/DeBug)
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "SocketInterface.h"
|
||||
|
||||
/*****************************************************************************************************************************************************/
|
||||
/****************************************************************** TCP/UDP Exports ******************************************************************/
|
||||
/*****************************************************************************************************************************************************/
|
||||
|
||||
/**************************************************/
|
||||
/************** HPSocket 对象智能指针 **************/
|
||||
|
||||
template<class T, class _Creator> class CHPBasePtr
|
||||
{
|
||||
public:
|
||||
CHPBasePtr& Reset(T* pObj = nullptr)
|
||||
{
|
||||
if(pObj != m_pObj)
|
||||
{
|
||||
if(m_pObj)
|
||||
_Creator::Destroy(m_pObj);
|
||||
|
||||
m_pObj = pObj;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
CHPBasePtr& Attach(T* pObj)
|
||||
{
|
||||
return Reset(pObj);
|
||||
}
|
||||
|
||||
T* Detach()
|
||||
{
|
||||
T* pObj = m_pObj;
|
||||
m_pObj = nullptr;
|
||||
|
||||
return pObj;
|
||||
}
|
||||
|
||||
BOOL IsValid () const {return m_pObj != nullptr ;}
|
||||
T* Get () const {return m_pObj ;}
|
||||
T* operator -> () const {return m_pObj ;}
|
||||
operator T* () const {return m_pObj ;}
|
||||
|
||||
CHPBasePtr& operator = (T* pObj) {return Reset(pObj) ;}
|
||||
|
||||
public:
|
||||
CHPBasePtr() : m_pObj(nullptr)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual ~CHPBasePtr()
|
||||
{
|
||||
Reset();
|
||||
}
|
||||
|
||||
private:
|
||||
CHPBasePtr(const CHPBasePtr&);
|
||||
CHPBasePtr& operator = (const CHPBasePtr&);
|
||||
|
||||
protected:
|
||||
T* m_pObj;
|
||||
};
|
||||
|
||||
template<class T, class _Listener, class _Creator> class CHPSocketPtr : public CHPBasePtr<T, _Creator>
|
||||
{
|
||||
public:
|
||||
CHPSocketPtr(_Listener* pListener)
|
||||
{
|
||||
__super::m_pObj = _Creator::Create(pListener);
|
||||
}
|
||||
|
||||
CHPSocketPtr()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
template<class T, class _Creator> class CHPObjectPtr : public CHPBasePtr<T, _Creator>
|
||||
{
|
||||
public:
|
||||
CHPObjectPtr(BOOL bCreate = FALSE)
|
||||
{
|
||||
if(bCreate)
|
||||
__super::m_pObj = _Creator::Create();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/**************************************************/
|
||||
/**************** HPSocket 导出函数 ****************/
|
||||
|
||||
// 创建 ITcpServer 对象
|
||||
HPSOCKET_API ITcpServer* HP_Create_TcpServer(ITcpServerListener* pListener);
|
||||
// 创建 ITcpAgent 对象
|
||||
HPSOCKET_API ITcpAgent* HP_Create_TcpAgent(ITcpAgentListener* pListener);
|
||||
// 创建 ITcpClient 对象
|
||||
HPSOCKET_API ITcpClient* HP_Create_TcpClient(ITcpClientListener* pListener);
|
||||
// 创建 ITcpPullServer 对象
|
||||
HPSOCKET_API ITcpPullServer* HP_Create_TcpPullServer(ITcpServerListener* pListener);
|
||||
// 创建 ITcpPullAgent 对象
|
||||
HPSOCKET_API ITcpPullAgent* HP_Create_TcpPullAgent(ITcpAgentListener* pListener);
|
||||
// 创建 ITcpPullClient 对象
|
||||
HPSOCKET_API ITcpPullClient* HP_Create_TcpPullClient(ITcpClientListener* pListener);
|
||||
// 创建 ITcpPackServer 对象
|
||||
HPSOCKET_API ITcpPackServer* HP_Create_TcpPackServer(ITcpServerListener* pListener);
|
||||
// 创建 ITcpPackAgent 对象
|
||||
HPSOCKET_API ITcpPackAgent* HP_Create_TcpPackAgent(ITcpAgentListener* pListener);
|
||||
// 创建 ITcpPackClient 对象
|
||||
HPSOCKET_API ITcpPackClient* HP_Create_TcpPackClient(ITcpClientListener* pListener);
|
||||
|
||||
// 销毁 ITcpServer 对象
|
||||
HPSOCKET_API void HP_Destroy_TcpServer(ITcpServer* pServer);
|
||||
// 销毁 ITcpAgent 对象
|
||||
HPSOCKET_API void HP_Destroy_TcpAgent(ITcpAgent* pAgent);
|
||||
// 销毁 ITcpClient 对象
|
||||
HPSOCKET_API void HP_Destroy_TcpClient(ITcpClient* pClient);
|
||||
// 销毁 ITcpPullServer 对象
|
||||
HPSOCKET_API void HP_Destroy_TcpPullServer(ITcpPullServer* pServer);
|
||||
// 销毁 ITcpPullAgent 对象
|
||||
HPSOCKET_API void HP_Destroy_TcpPullAgent(ITcpPullAgent* pAgent);
|
||||
// 销毁 ITcpPullClient 对象
|
||||
HPSOCKET_API void HP_Destroy_TcpPullClient(ITcpPullClient* pClient);
|
||||
// 销毁 ITcpPackServer 对象
|
||||
HPSOCKET_API void HP_Destroy_TcpPackServer(ITcpPackServer* pServer);
|
||||
// 销毁 ITcpPackAgent 对象
|
||||
HPSOCKET_API void HP_Destroy_TcpPackAgent(ITcpPackAgent* pAgent);
|
||||
// 销毁 ITcpPackClient 对象
|
||||
HPSOCKET_API void HP_Destroy_TcpPackClient(ITcpPackClient* pClient);
|
||||
|
||||
#ifdef _UDP_SUPPORT
|
||||
|
||||
// 创建 IUdpServer 对象
|
||||
HPSOCKET_API IUdpServer* HP_Create_UdpServer(IUdpServerListener* pListener);
|
||||
// 创建 IUdpClient 对象
|
||||
HPSOCKET_API IUdpClient* HP_Create_UdpClient(IUdpClientListener* pListener);
|
||||
// 创建 IUdpCast 对象
|
||||
HPSOCKET_API IUdpCast* HP_Create_UdpCast(IUdpCastListener* pListener);
|
||||
// 创建 IUdpNode 对象
|
||||
HPSOCKET_API IUdpNode* HP_Create_UdpNode(IUdpNodeListener* pListener);
|
||||
// 创建 IUdpArqServer 对象
|
||||
HPSOCKET_API IUdpArqServer* HP_Create_UdpArqServer(IUdpServerListener* pListener);
|
||||
// 创建 IUdpArqClient 对象
|
||||
HPSOCKET_API IUdpArqClient* HP_Create_UdpArqClient(IUdpClientListener* pListener);
|
||||
|
||||
// 销毁 IUdpServer 对象
|
||||
HPSOCKET_API void HP_Destroy_UdpServer(IUdpServer* pServer);
|
||||
// 销毁 IUdpClient 对象
|
||||
HPSOCKET_API void HP_Destroy_UdpClient(IUdpClient* pClient);
|
||||
// 销毁 IUdpCast 对象
|
||||
HPSOCKET_API void HP_Destroy_UdpCast(IUdpCast* pCast);
|
||||
// 销毁 IUdpNode 对象
|
||||
HPSOCKET_API void HP_Destroy_UdpNode(IUdpNode* pNode);
|
||||
// 销毁 IUdpArqServer 对象
|
||||
HPSOCKET_API void HP_Destroy_UdpArqServer(IUdpArqServer* pServer);
|
||||
// 销毁 IUdpArqClient 对象
|
||||
HPSOCKET_API void HP_Destroy_UdpArqClient(IUdpArqClient* pClient);
|
||||
|
||||
#endif
|
||||
|
||||
// ITcpServer 对象创建器
|
||||
struct TcpServer_Creator
|
||||
{
|
||||
static ITcpServer* Create(ITcpServerListener* pListener)
|
||||
{
|
||||
return HP_Create_TcpServer(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpServer* pServer)
|
||||
{
|
||||
HP_Destroy_TcpServer(pServer);
|
||||
}
|
||||
};
|
||||
|
||||
// ITcpAgent 对象创建器
|
||||
struct TcpAgent_Creator
|
||||
{
|
||||
static ITcpAgent* Create(ITcpAgentListener* pListener)
|
||||
{
|
||||
return HP_Create_TcpAgent(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpAgent* pAgent)
|
||||
{
|
||||
HP_Destroy_TcpAgent(pAgent);
|
||||
}
|
||||
};
|
||||
|
||||
// ITcpClient 对象创建器
|
||||
struct TcpClient_Creator
|
||||
{
|
||||
static ITcpClient* Create(ITcpClientListener* pListener)
|
||||
{
|
||||
return HP_Create_TcpClient(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpClient* pClient)
|
||||
{
|
||||
HP_Destroy_TcpClient(pClient);
|
||||
}
|
||||
};
|
||||
|
||||
// ITcpPullServer 对象创建器
|
||||
struct TcpPullServer_Creator
|
||||
{
|
||||
static ITcpPullServer* Create(ITcpServerListener* pListener)
|
||||
{
|
||||
return HP_Create_TcpPullServer(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpPullServer* pServer)
|
||||
{
|
||||
HP_Destroy_TcpPullServer(pServer);
|
||||
}
|
||||
};
|
||||
|
||||
// ITcpPullAgent 对象创建器
|
||||
struct TcpPullAgent_Creator
|
||||
{
|
||||
static ITcpPullAgent* Create(ITcpAgentListener* pListener)
|
||||
{
|
||||
return HP_Create_TcpPullAgent(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpPullAgent* pAgent)
|
||||
{
|
||||
HP_Destroy_TcpPullAgent(pAgent);
|
||||
}
|
||||
};
|
||||
|
||||
// ITcpPullClient 对象创建器
|
||||
struct TcpPullClient_Creator
|
||||
{
|
||||
static ITcpPullClient* Create(ITcpClientListener* pListener)
|
||||
{
|
||||
return HP_Create_TcpPullClient(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpPullClient* pClient)
|
||||
{
|
||||
HP_Destroy_TcpPullClient(pClient);
|
||||
}
|
||||
};
|
||||
|
||||
// ITcpPackServer 对象创建器
|
||||
struct TcpPackServer_Creator
|
||||
{
|
||||
static ITcpPackServer* Create(ITcpServerListener* pListener)
|
||||
{
|
||||
return HP_Create_TcpPackServer(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpPackServer* pServer)
|
||||
{
|
||||
HP_Destroy_TcpPackServer(pServer);
|
||||
}
|
||||
};
|
||||
|
||||
// ITcpPackAgent 对象创建器
|
||||
struct TcpPackAgent_Creator
|
||||
{
|
||||
static ITcpPackAgent* Create(ITcpAgentListener* pListener)
|
||||
{
|
||||
return HP_Create_TcpPackAgent(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpPackAgent* pAgent)
|
||||
{
|
||||
HP_Destroy_TcpPackAgent(pAgent);
|
||||
}
|
||||
};
|
||||
|
||||
// ITcpPackClient 对象创建器
|
||||
struct TcpPackClient_Creator
|
||||
{
|
||||
static ITcpPackClient* Create(ITcpClientListener* pListener)
|
||||
{
|
||||
return HP_Create_TcpPackClient(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(ITcpPackClient* pClient)
|
||||
{
|
||||
HP_Destroy_TcpPackClient(pClient);
|
||||
}
|
||||
};
|
||||
|
||||
// ITcpServer 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpServer, ITcpServerListener, TcpServer_Creator> CTcpServerPtr;
|
||||
// ITcpAgent 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpAgent, ITcpAgentListener, TcpAgent_Creator> CTcpAgentPtr;
|
||||
// ITcpClient 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpClient, ITcpClientListener, TcpClient_Creator> CTcpClientPtr;
|
||||
// ITcpPullServer 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpPullServer, ITcpServerListener, TcpPullServer_Creator> CTcpPullServerPtr;
|
||||
// ITcpPullAgent 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpPullAgent, ITcpAgentListener, TcpPullAgent_Creator> CTcpPullAgentPtr;
|
||||
// ITcpPullClient 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpPullClient, ITcpClientListener, TcpPullClient_Creator> CTcpPullClientPtr;
|
||||
// ITcpPackServer 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpPackServer, ITcpServerListener, TcpPackServer_Creator> CTcpPackServerPtr;
|
||||
// ITcpPackAgent 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpPackAgent, ITcpAgentListener, TcpPackAgent_Creator> CTcpPackAgentPtr;
|
||||
// ITcpPackClient 对象智能指针
|
||||
typedef CHPSocketPtr<ITcpPackClient, ITcpClientListener, TcpPackClient_Creator> CTcpPackClientPtr;
|
||||
|
||||
#ifdef _UDP_SUPPORT
|
||||
|
||||
// IUdpServer 对象创建器
|
||||
struct UdpServer_Creator
|
||||
{
|
||||
static IUdpServer* Create(IUdpServerListener* pListener)
|
||||
{
|
||||
return HP_Create_UdpServer(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(IUdpServer* pServer)
|
||||
{
|
||||
HP_Destroy_UdpServer(pServer);
|
||||
}
|
||||
};
|
||||
|
||||
// IUdpClient 对象创建器
|
||||
struct UdpClient_Creator
|
||||
{
|
||||
static IUdpClient* Create(IUdpClientListener* pListener)
|
||||
{
|
||||
return HP_Create_UdpClient(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(IUdpClient* pClient)
|
||||
{
|
||||
HP_Destroy_UdpClient(pClient);
|
||||
}
|
||||
};
|
||||
|
||||
// IUdpCast 对象创建器
|
||||
struct UdpCast_Creator
|
||||
{
|
||||
static IUdpCast* Create(IUdpCastListener* pListener)
|
||||
{
|
||||
return HP_Create_UdpCast(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(IUdpCast* pCast)
|
||||
{
|
||||
HP_Destroy_UdpCast(pCast);
|
||||
}
|
||||
};
|
||||
|
||||
// IUdpNode 对象创建器
|
||||
struct UdpNode_Creator
|
||||
{
|
||||
static IUdpNode* Create(IUdpNodeListener* pListener)
|
||||
{
|
||||
return HP_Create_UdpNode(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(IUdpNode* pNode)
|
||||
{
|
||||
HP_Destroy_UdpNode(pNode);
|
||||
}
|
||||
};
|
||||
|
||||
// IUdpArqServer 对象创建器
|
||||
struct UdpArqServer_Creator
|
||||
{
|
||||
static IUdpArqServer* Create(IUdpServerListener* pListener)
|
||||
{
|
||||
return HP_Create_UdpArqServer(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(IUdpArqServer* pServer)
|
||||
{
|
||||
HP_Destroy_UdpArqServer(pServer);
|
||||
}
|
||||
};
|
||||
|
||||
// IUdpArqClient 对象创建器
|
||||
struct UdpArqClient_Creator
|
||||
{
|
||||
static IUdpArqClient* Create(IUdpClientListener* pListener)
|
||||
{
|
||||
return HP_Create_UdpArqClient(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(IUdpArqClient* pClient)
|
||||
{
|
||||
HP_Destroy_UdpArqClient(pClient);
|
||||
}
|
||||
};
|
||||
|
||||
// IUdpServer 对象智能指针
|
||||
typedef CHPSocketPtr<IUdpServer, IUdpServerListener, UdpServer_Creator> CUdpServerPtr;
|
||||
// IUdpClient 对象智能指针
|
||||
typedef CHPSocketPtr<IUdpClient, IUdpClientListener, UdpClient_Creator> CUdpClientPtr;
|
||||
// IUdpCast 对象智能指针
|
||||
typedef CHPSocketPtr<IUdpCast, IUdpCastListener, UdpCast_Creator> CUdpCastPtr;
|
||||
// IUdpNode 对象智能指针
|
||||
typedef CHPSocketPtr<IUdpNode, IUdpNodeListener, UdpNode_Creator> CUdpNodePtr;
|
||||
// IUdpArqServer 对象智能指针
|
||||
typedef CHPSocketPtr<IUdpArqServer, IUdpServerListener, UdpArqServer_Creator> CUdpArqServerPtr;
|
||||
// IUdpArqClient 对象智能指针
|
||||
typedef CHPSocketPtr<IUdpArqClient, IUdpClientListener, UdpArqClient_Creator> CUdpArqClientPtr;
|
||||
|
||||
#endif
|
||||
|
||||
/*****************************************************************************************************************************************************/
|
||||
/*************************************************************** Global Function Exports *************************************************************/
|
||||
/*****************************************************************************************************************************************************/
|
||||
|
||||
// 获取 HPSocket 版本号(4 个字节分别为:主版本号,子版本号,修正版本号,构建编号)
|
||||
HPSOCKET_API DWORD HP_GetHPSocketVersion();
|
||||
|
||||
// 获取错误描述文本
|
||||
HPSOCKET_API LPCTSTR HP_GetSocketErrorDesc(EnSocketError enCode);
|
||||
// 调用系统的 GetLastError() 方法获取系统错误代码
|
||||
HPSOCKET_API DWORD SYS_GetLastError ();
|
||||
// 调用系统的 WSAGetLastError() 方法获取系统错误代码
|
||||
HPSOCKET_API int SYS_WSAGetLastError();
|
||||
// 调用系统的 setsockopt()
|
||||
HPSOCKET_API int SYS_SetSocketOption(SOCKET sock, int level, int name, LPVOID val, int len);
|
||||
// 调用系统的 getsockopt()
|
||||
HPSOCKET_API int SYS_GetSocketOption(SOCKET sock, int level, int name, LPVOID val, int* len);
|
||||
// 调用系统的 ioctlsocket()
|
||||
HPSOCKET_API int SYS_IoctlSocket(SOCKET sock, long cmd, u_long* arg);
|
||||
// 调用系统的 WSAIoctl()
|
||||
HPSOCKET_API int SYS_WSAIoctl(SOCKET sock, DWORD dwIoControlCode, LPVOID lpvInBuffer, DWORD cbInBuffer, LPVOID lpvOutBuffer, DWORD cbOutBuffer, LPDWORD lpcbBytesReturned);
|
||||
|
||||
// 设置 socket 选项:IPPROTO_TCP -> TCP_NODELAY
|
||||
HPSOCKET_API int SYS_SSO_NoDelay(SOCKET sock, BOOL bNoDelay);
|
||||
// 设置 socket 选项:SOL_SOCKET -> SO_DONTLINGER
|
||||
HPSOCKET_API int SYS_SSO_DontLinger(SOCKET sock, BOOL bDont);
|
||||
// 设置 socket 选项:SOL_SOCKET -> SO_LINGER
|
||||
HPSOCKET_API int SYS_SSO_Linger(SOCKET sock, USHORT l_onoff, USHORT l_linger);
|
||||
// 设置 socket 选项:SOL_SOCKET -> SO_RCVBUF
|
||||
HPSOCKET_API int SYS_SSO_RecvBuffSize(SOCKET sock, int size);
|
||||
// 设置 socket 选项:SOL_SOCKET -> SO_SNDBUF
|
||||
HPSOCKET_API int SYS_SSO_SendBuffSize(SOCKET sock, int size);
|
||||
// 设置 socket 选项:SOL_SOCKET -> SO_RCVTIMEO
|
||||
HPSOCKET_API int SYS_SSO_RecvTimeOut(SOCKET sock, int ms);
|
||||
// 设置 socket 选项:SOL_SOCKET -> SO_SNDTIMEO
|
||||
HPSOCKET_API int SYS_SSO_SendTimeOut(SOCKET sock, int ms);
|
||||
// 设置 socket 选项:SOL_SOCKET -> SO_EXCLUSIVEADDRUSE / SO_REUSEADDR
|
||||
HPSOCKET_API int SYS_SSO_ReuseAddress(SOCKET sock, EnReuseAddressPolicy opt);
|
||||
// 设置 socket 选项:SOL_SOCKET -> SO_EXCLUSIVEADDRUSE
|
||||
HPSOCKET_API int SYS_SSO_ExclusiveAddressUse(SOCKET sock, BOOL bExclusive);
|
||||
|
||||
// 获取 SOCKET 本地地址信息
|
||||
HPSOCKET_API BOOL SYS_GetSocketLocalAddress(SOCKET socket, TCHAR lpszAddress[], int& iAddressLen, USHORT& usPort);
|
||||
// 获取 SOCKET 远程地址信息
|
||||
HPSOCKET_API BOOL SYS_GetSocketRemoteAddress(SOCKET socket, TCHAR lpszAddress[], int& iAddressLen, USHORT& usPort);
|
||||
|
||||
/* 枚举主机 IP 地址 */
|
||||
HPSOCKET_API BOOL SYS_EnumHostIPAddresses(LPCTSTR lpszHost, EnIPAddrType enType, LPTIPAddr** lpppIPAddr, int& iIPAddrCount);
|
||||
/* 释放 LPTIPAddr* */
|
||||
HPSOCKET_API BOOL SYS_FreeHostIPAddresses(LPTIPAddr* lppIPAddr);
|
||||
/* 检查字符串是否符合 IP 地址格式 */
|
||||
HPSOCKET_API BOOL SYS_IsIPAddress(LPCTSTR lpszAddress, EnIPAddrType* penType = nullptr);
|
||||
/* 通过主机名获取 IP 地址 */
|
||||
HPSOCKET_API BOOL SYS_GetIPAddress(LPCTSTR lpszHost, TCHAR lpszIP[], int& iIPLenth, EnIPAddrType& enType);
|
||||
|
||||
/* 64 位网络字节序转主机字节序 */
|
||||
HPSOCKET_API ULONGLONG SYS_NToH64(ULONGLONG value);
|
||||
/* 64 位主机字节序转网络字节序 */
|
||||
HPSOCKET_API ULONGLONG SYS_HToN64(ULONGLONG value);
|
||||
/* 短整型高低字节交换 */
|
||||
HPSOCKET_API USHORT SYS_SwapEndian16(USHORT value);
|
||||
/* 长整型高低字节交换 */
|
||||
HPSOCKET_API DWORD SYS_SwapEndian32(DWORD value);
|
||||
/* 检查是否小端字节序 */
|
||||
HPSOCKET_API BOOL SYS_IsLittleEndian();
|
||||
|
||||
/* 分配内存 */
|
||||
HPSOCKET_API LPBYTE SYS_Malloc(int size);
|
||||
/* 重新分配内存 */
|
||||
HPSOCKET_API LPBYTE SYS_Realloc(LPBYTE p, int size);
|
||||
/* 释放内存 */
|
||||
HPSOCKET_API VOID SYS_Free(LPBYTE p);
|
||||
|
||||
// CP_XXX -> UNICODE
|
||||
HPSOCKET_API BOOL SYS_CodePageToUnicode(int iCodePage, const char szSrc[], WCHAR szDest[], int& iDestLength);
|
||||
// UNICODE -> CP_XXX
|
||||
HPSOCKET_API BOOL SYS_UnicodeToCodePage(int iCodePage, const WCHAR szSrc[], char szDest[], int& iDestLength);
|
||||
// GBK -> UNICODE
|
||||
HPSOCKET_API BOOL SYS_GbkToUnicode(const char szSrc[], WCHAR szDest[], int& iDestLength);
|
||||
// UNICODE -> GBK
|
||||
HPSOCKET_API BOOL SYS_UnicodeToGbk(const WCHAR szSrc[], char szDest[], int& iDestLength);
|
||||
// UTF8 -> UNICODE
|
||||
HPSOCKET_API BOOL SYS_Utf8ToUnicode(const char szSrc[], WCHAR szDest[], int& iDestLength);
|
||||
// UNICODE -> UTF8
|
||||
HPSOCKET_API BOOL SYS_UnicodeToUtf8(const WCHAR szSrc[], char szDest[], int& iDestLength);
|
||||
// GBK -> UTF8
|
||||
HPSOCKET_API BOOL SYS_GbkToUtf8(const char szSrc[], char szDest[], int& iDestLength);
|
||||
// UTF8 -> GBK
|
||||
HPSOCKET_API BOOL SYS_Utf8ToGbk(const char szSrc[], char szDest[], int& iDestLength);
|
||||
|
||||
// 计算 Base64 编码后长度
|
||||
HPSOCKET_API DWORD SYS_GuessBase64EncodeBound(DWORD dwSrcLen);
|
||||
// 计算 Base64 解码后长度
|
||||
HPSOCKET_API DWORD SYS_GuessBase64DecodeBound(const BYTE* lpszSrc, DWORD dwSrcLen);
|
||||
// Base64 编码(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
|
||||
HPSOCKET_API int SYS_Base64Encode(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen);
|
||||
// Base64 解码(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
|
||||
HPSOCKET_API int SYS_Base64Decode(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen);
|
||||
|
||||
// 计算 URL 编码后长度
|
||||
HPSOCKET_API DWORD SYS_GuessUrlEncodeBound(const BYTE* lpszSrc, DWORD dwSrcLen);
|
||||
// 计算 URL 解码后长度
|
||||
HPSOCKET_API DWORD SYS_GuessUrlDecodeBound(const BYTE* lpszSrc, DWORD dwSrcLen);
|
||||
// URL 编码(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
|
||||
HPSOCKET_API int SYS_UrlEncode(BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen);
|
||||
// URL 解码(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
|
||||
HPSOCKET_API int SYS_UrlDecode(BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen);
|
||||
|
||||
#ifdef _ZLIB_SUPPORT
|
||||
|
||||
// 普通压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
|
||||
HPSOCKET_API int SYS_Compress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen);
|
||||
// 高级压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
|
||||
//(默认参数:iLevel -> -1,iMethod -> 8,iWindowBits -> 15,iMemLevel -> 8,iStrategy -> 0)
|
||||
HPSOCKET_API int SYS_CompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen, int iLevel = -1, int iMethod = 8, int iWindowBits = 15, int iMemLevel = 8, int iStrategy = 0);
|
||||
// 普通解压(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
|
||||
HPSOCKET_API int SYS_Uncompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen);
|
||||
// 高级解压(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
|
||||
//(默认参数:iWindowBits -> 15)
|
||||
HPSOCKET_API int SYS_UncompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen, int iWindowBits = 15);
|
||||
// 推测压缩结果长度
|
||||
HPSOCKET_API DWORD SYS_GuessCompressBound(DWORD dwSrcLen, BOOL bGZip = FALSE);
|
||||
|
||||
// Gzip 压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
|
||||
HPSOCKET_API int SYS_GZipCompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen);
|
||||
// Gzip 解压(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
|
||||
HPSOCKET_API int SYS_GZipUncompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen);
|
||||
// 推测 Gzip 解压结果长度(如果返回 0 或不合理值则说明输入内容并非有效的 Gzip 格式)
|
||||
HPSOCKET_API DWORD SYS_GZipGuessUncompressBound(const BYTE* lpszSrc, DWORD dwSrcLen);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef _BROTLI_SUPPORT
|
||||
|
||||
// Brotli 压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
|
||||
HPSOCKET_API int SYS_BrotliCompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen);
|
||||
// Brotli 高级压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
|
||||
//(默认参数:iQuality -> 11,iWindow -> 22,iMode -> 0)
|
||||
HPSOCKET_API int SYS_BrotliCompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen, int iQuality = 11, int iWindow = 22, int iMode = 0);
|
||||
// Brotli 解压(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
|
||||
HPSOCKET_API int SYS_BrotliUncompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen);
|
||||
// Brotli 推测压缩结果长度
|
||||
HPSOCKET_API DWORD SYS_BrotliGuessCompressBound(DWORD dwSrcLen);
|
||||
|
||||
#endif
|
||||
|
||||
/*****************************************************************************************************************************************************/
|
||||
/******************************************************************** HTTP Exports *******************************************************************/
|
||||
/*****************************************************************************************************************************************************/
|
||||
|
||||
#ifdef _HTTP_SUPPORT
|
||||
|
||||
// 创建 IHttpServer 对象
|
||||
HPSOCKET_API IHttpServer* HP_Create_HttpServer(IHttpServerListener* pListener);
|
||||
// 创建 IHttpAgent 对象
|
||||
HPSOCKET_API IHttpAgent* HP_Create_HttpAgent(IHttpAgentListener* pListener);
|
||||
// 创建 IHttpClient 对象
|
||||
HPSOCKET_API IHttpClient* HP_Create_HttpClient(IHttpClientListener* pListener);
|
||||
// 创建 IHttpSyncClient 对象
|
||||
HPSOCKET_API IHttpSyncClient* HP_Create_HttpSyncClient(IHttpClientListener* pListener);
|
||||
|
||||
// 销毁 IHttpServer 对象
|
||||
HPSOCKET_API void HP_Destroy_HttpServer(IHttpServer* pServer);
|
||||
// 销毁 IHttpAgent 对象
|
||||
HPSOCKET_API void HP_Destroy_HttpAgent(IHttpAgent* pAgent);
|
||||
// 销毁 IHttpClient 对象
|
||||
HPSOCKET_API void HP_Destroy_HttpClient(IHttpClient* pClient);
|
||||
// 销毁 IHttpSyncClient 对象
|
||||
HPSOCKET_API void HP_Destroy_HttpSyncClient(IHttpSyncClient* pClient);
|
||||
|
||||
// IHttpServer 对象创建器
|
||||
struct HttpServer_Creator
|
||||
{
|
||||
static IHttpServer* Create(IHttpServerListener* pListener)
|
||||
{
|
||||
return HP_Create_HttpServer(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(IHttpServer* pServer)
|
||||
{
|
||||
HP_Destroy_HttpServer(pServer);
|
||||
}
|
||||
};
|
||||
|
||||
// IHttpAgent 对象创建器
|
||||
struct HttpAgent_Creator
|
||||
{
|
||||
static IHttpAgent* Create(IHttpAgentListener* pListener)
|
||||
{
|
||||
return HP_Create_HttpAgent(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(IHttpAgent* pAgent)
|
||||
{
|
||||
HP_Destroy_HttpAgent(pAgent);
|
||||
}
|
||||
};
|
||||
|
||||
// IHttpClient 对象创建器
|
||||
struct HttpClient_Creator
|
||||
{
|
||||
static IHttpClient* Create(IHttpClientListener* pListener)
|
||||
{
|
||||
return HP_Create_HttpClient(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(IHttpClient* pClient)
|
||||
{
|
||||
HP_Destroy_HttpClient(pClient);
|
||||
}
|
||||
};
|
||||
|
||||
// IHttpSyncClient 对象创建器
|
||||
struct HttpSyncClient_Creator
|
||||
{
|
||||
static IHttpSyncClient* Create(IHttpClientListener* pListener)
|
||||
{
|
||||
return HP_Create_HttpSyncClient(pListener);
|
||||
}
|
||||
|
||||
static void Destroy(IHttpSyncClient* pClient)
|
||||
{
|
||||
HP_Destroy_HttpSyncClient(pClient);
|
||||
}
|
||||
};
|
||||
|
||||
// IHttpServer 对象智能指针
|
||||
typedef CHPSocketPtr<IHttpServer, IHttpServerListener, HttpServer_Creator> CHttpServerPtr;
|
||||
// IHttpAgent 对象智能指针
|
||||
typedef CHPSocketPtr<IHttpAgent, IHttpAgentListener, HttpAgent_Creator> CHttpAgentPtr;
|
||||
// IHttpClient 对象智能指针
|
||||
typedef CHPSocketPtr<IHttpClient, IHttpClientListener, HttpClient_Creator> CHttpClientPtr;
|
||||
// IHttpSyncClient 对象智能指针
|
||||
typedef CHPSocketPtr<IHttpSyncClient, IHttpClientListener, HttpSyncClient_Creator> CHttpSyncClientPtr;
|
||||
|
||||
/**************************************************************************/
|
||||
/*************************** HTTP Cookie 管理方法 **************************/
|
||||
|
||||
/* 从文件加载 Cookie */
|
||||
HPSOCKET_API BOOL HP_HttpCookie_MGR_LoadFromFile(LPCSTR lpszFile, BOOL bKeepExists = TRUE);
|
||||
/* 保存 Cookie 到文件 */
|
||||
HPSOCKET_API BOOL HP_HttpCookie_MGR_SaveToFile(LPCSTR lpszFile, BOOL bKeepExists = TRUE);
|
||||
/* 清理 Cookie */
|
||||
HPSOCKET_API BOOL HP_HttpCookie_MGR_ClearCookies(LPCSTR lpszDomain = nullptr, LPCSTR lpszPath = nullptr);
|
||||
/* 清理过期 Cookie */
|
||||
HPSOCKET_API BOOL HP_HttpCookie_MGR_RemoveExpiredCookies(LPCSTR lpszDomain = nullptr, LPCSTR lpszPath = nullptr);
|
||||
/* 设置 Cookie */
|
||||
HPSOCKET_API BOOL HP_HttpCookie_MGR_SetCookie(LPCSTR lpszName, LPCSTR lpszValue, LPCSTR lpszDomain, LPCSTR lpszPath, int iMaxAge = -1, BOOL bHttpOnly = FALSE, BOOL bSecure = FALSE, int enSameSite = 0, BOOL bOnlyUpdateValueIfExists = TRUE);
|
||||
/* 删除 Cookie */
|
||||
HPSOCKET_API BOOL HP_HttpCookie_MGR_DeleteCookie(LPCSTR lpszDomain, LPCSTR lpszPath, LPCSTR lpszName);
|
||||
/* 设置是否允许第三方 Cookie */
|
||||
HPSOCKET_API void HP_HttpCookie_MGR_SetEnableThirdPartyCookie(BOOL bEnableThirdPartyCookie = TRUE);
|
||||
/* 检查是否允许第三方 Cookie */
|
||||
HPSOCKET_API BOOL HP_HttpCookie_MGR_IsEnableThirdPartyCookie();
|
||||
|
||||
/* Cookie expires 字符串转换为整数 */
|
||||
HPSOCKET_API BOOL HP_HttpCookie_HLP_ParseExpires(LPCSTR lpszExpires, __time64_t& tmExpires);
|
||||
/* 整数转换为 Cookie expires 字符串 */
|
||||
HPSOCKET_API BOOL HP_HttpCookie_HLP_MakeExpiresStr(char lpszBuff[], int& iBuffLen, __time64_t tmExpires);
|
||||
/* 生成 Cookie 字符串 */
|
||||
HPSOCKET_API BOOL HP_HttpCookie_HLP_ToString(char lpszBuff[], int& iBuffLen, LPCSTR lpszName, LPCSTR lpszValue, LPCSTR lpszDomain, LPCSTR lpszPath, int iMaxAge /*= -1*/, BOOL bHttpOnly /*= FALSE*/, BOOL bSecure /*= FALSE*/, int enSameSite /*= 0*/);
|
||||
/* 获取当前 UTC 时间 */
|
||||
HPSOCKET_API __time64_t HP_HttpCookie_HLP_CurrentUTCTime();
|
||||
/* Max-Age -> expires */
|
||||
HPSOCKET_API __time64_t HP_HttpCookie_HLP_MaxAgeToExpires(int iMaxAge);
|
||||
/* expires -> Max-Age */
|
||||
HPSOCKET_API int HP_HttpCookie_HLP_ExpiresToMaxAge(__time64_t tmExpires);
|
||||
|
||||
/*****************************************************************************************************************************************************/
|
||||
/************************************************************* HTTP Global Function Exports **********************************************************/
|
||||
/*****************************************************************************************************************************************************/
|
||||
|
||||
#endif
|
||||
|
||||
/*****************************************************************************************************************************************************/
|
||||
/**************************************************************** Thread Pool Exports ****************************************************************/
|
||||
/*****************************************************************************************************************************************************/
|
||||
|
||||
// 创建 IHPThreadPool 对象
|
||||
HPSOCKET_API IHPThreadPool* HP_Create_ThreadPool();
|
||||
// 销毁 IHPThreadPool 对象
|
||||
HPSOCKET_API void HP_Destroy_ThreadPool(IHPThreadPool* pThreadPool);
|
||||
|
||||
/*
|
||||
* 名称:创建 TSocketTask 对象
|
||||
* 描述:创建任务对象,该对象最终需由 HP_Destroy_SocketTaskObj() 销毁
|
||||
*
|
||||
* 参数: fnTaskProc -- 任务处理函数
|
||||
* pSender -- 发起对象
|
||||
* dwConnID -- 连接 ID
|
||||
* pBuffer -- 数据缓冲区
|
||||
* iBuffLen -- 数据缓冲区长度
|
||||
* enBuffType -- 数据缓冲区类型(默认:TBT_COPY)
|
||||
* TBT_COPY :(深拷贝)pBuffer 复制到 TSocketTask 对象。此后 TSocketTask 对象与 pBuffer 不再有任何关联
|
||||
* -> 适用于 pBuffer 不大或 pBuffer 生命周期不受控的场景
|
||||
* TBT_REFER :(浅拷贝)pBuffer 不复制到 TSocketTask 对象,需确保 TSocketTask 对象生命周期内 pBuffer 必须有效
|
||||
* -> 适用于 pBuffer 较大或 pBuffer 可重用,并且 pBuffer 生命周期受控的场景
|
||||
* TBT_ATTACH :(附属)执行浅拷贝,但 TSocketTask 对象会获得 pBuffer 的所有权,并负责释放 pBuffer,避免多次缓冲区拷贝
|
||||
* -> 注意:pBuffer 必须由 SYS_Malloc() 函数分配才能使用本类型,否则可能会发生内存访问错误
|
||||
* wParam -- 自定义参数
|
||||
* lParam -- 自定义参数
|
||||
* 返回值: LPTSocketTask
|
||||
*/
|
||||
HPSOCKET_API LPTSocketTask HP_Create_SocketTaskObj(Fn_SocketTaskProc fnTaskProc, PVOID pSender, CONNID dwConnID, LPCBYTE pBuffer, INT iBuffLen, EnTaskBufferType enBuffType = TBT_COPY, WPARAM wParam = 0, LPARAM lParam = 0);
|
||||
|
||||
// 销毁 TSocketTask 对象
|
||||
HPSOCKET_API void HP_Destroy_SocketTaskObj(LPTSocketTask pTask);
|
||||
|
||||
// IHPThreadPool 对象创建器
|
||||
struct HPThreadPool_Creator
|
||||
{
|
||||
static IHPThreadPool* Create()
|
||||
{
|
||||
return HP_Create_ThreadPool();
|
||||
}
|
||||
|
||||
static void Destroy(IHPThreadPool* pThreadPool)
|
||||
{
|
||||
HP_Destroy_ThreadPool(pThreadPool);
|
||||
}
|
||||
};
|
||||
|
||||
// IHPThreadPool 对象智能指针
|
||||
typedef CHPObjectPtr<IHPThreadPool, HPThreadPool_Creator> CHPThreadPoolPtr;
|
|
@ -1,411 +0,0 @@
|
|||
/*
|
||||
* Copyright: JessMA Open Source (ldcsaa@gmail.com)
|
||||
*
|
||||
* Author : Bruce Liang
|
||||
* Website : https://github.com/ldcsaa
|
||||
* Project : https://github.com/ldcsaa/HP-Socket
|
||||
* Blog : http://www.cnblogs.com/ldcsaa
|
||||
* Wiki : http://www.oschina.net/p/hp-socket
|
||||
* QQ Group : 44636872, 75375912
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "HPSocket4C.h"
|
||||
|
||||
#ifdef _SSL_SUPPORT
|
||||
|
||||
/************************************************************************
|
||||
名称:定义 SSL Socket 对象指针类型别名
|
||||
描述:把 SSL Socket 对象指针定义为更直观的别名
|
||||
************************************************************************/
|
||||
|
||||
typedef HP_Object HP_SSLServer;
|
||||
typedef HP_Object HP_SSLAgent;
|
||||
typedef HP_Object HP_SSLClient;
|
||||
typedef HP_Object HP_SSLPullServer;
|
||||
typedef HP_Object HP_SSLPullAgent;
|
||||
typedef HP_Object HP_SSLPullClient;
|
||||
typedef HP_Object HP_SSLPackServer;
|
||||
typedef HP_Object HP_SSLPackAgent;
|
||||
typedef HP_Object HP_SSLPackClient;
|
||||
|
||||
typedef HP_Object HP_HttpsServer;
|
||||
typedef HP_Object HP_HttpsAgent;
|
||||
typedef HP_Object HP_HttpsClient;
|
||||
typedef HP_Object HP_HttpsSyncClient;
|
||||
|
||||
/*****************************************************************************************************************************************************/
|
||||
/******************************************************************** SSL Exports ********************************************************************/
|
||||
/*****************************************************************************************************************************************************/
|
||||
|
||||
/********************************************************/
|
||||
/************** HPSocket4C-SSL 对象创建函数 **************/
|
||||
|
||||
// 创建 HP_SSLServer 对象
|
||||
HPSOCKET_API HP_SSLServer __HP_CALL Create_HP_SSLServer(HP_TcpServerListener pListener);
|
||||
// 创建 HP_SSLAgent 对象
|
||||
HPSOCKET_API HP_SSLAgent __HP_CALL Create_HP_SSLAgent(HP_TcpAgentListener pListener);
|
||||
// 创建 HP_SSLClient 对象
|
||||
HPSOCKET_API HP_SSLClient __HP_CALL Create_HP_SSLClient(HP_TcpClientListener pListener);
|
||||
// 创建 HP_SSLPullServer 对象
|
||||
HPSOCKET_API HP_SSLPullServer __HP_CALL Create_HP_SSLPullServer(HP_TcpPullServerListener pListener);
|
||||
// 创建 HP_SSLPullAgent 对象
|
||||
HPSOCKET_API HP_SSLPullAgent __HP_CALL Create_HP_SSLPullAgent(HP_TcpPullAgentListener pListener);
|
||||
// 创建 HP_SSLPullClient 对象
|
||||
HPSOCKET_API HP_SSLPullClient __HP_CALL Create_HP_SSLPullClient(HP_TcpPullClientListener pListener);
|
||||
// 创建 HP_SSLPackServer 对象
|
||||
HPSOCKET_API HP_SSLPackServer __HP_CALL Create_HP_SSLPackServer(HP_TcpServerListener pListener);
|
||||
// 创建 HP_SSLPackAgent 对象
|
||||
HPSOCKET_API HP_SSLPackAgent __HP_CALL Create_HP_SSLPackAgent(HP_TcpAgentListener pListener);
|
||||
// 创建 HP_SSLPackClient 对象
|
||||
HPSOCKET_API HP_SSLPackClient __HP_CALL Create_HP_SSLPackClient(HP_TcpClientListener pListener);
|
||||
|
||||
// 销毁 HP_SSLServer 对象
|
||||
HPSOCKET_API void __HP_CALL Destroy_HP_SSLServer(HP_SSLServer pServer);
|
||||
// 销毁 HP_SSLAgent 对象
|
||||
HPSOCKET_API void __HP_CALL Destroy_HP_SSLAgent(HP_SSLAgent pAgent);
|
||||
// 销毁 HP_SSLClient 对象
|
||||
HPSOCKET_API void __HP_CALL Destroy_HP_SSLClient(HP_SSLClient pClient);
|
||||
// 销毁 HP_SSLPullServer 对象
|
||||
HPSOCKET_API void __HP_CALL Destroy_HP_SSLPullServer(HP_SSLPullServer pServer);
|
||||
// 销毁 HP_SSLPullAgent 对象
|
||||
HPSOCKET_API void __HP_CALL Destroy_HP_SSLPullAgent(HP_SSLPullAgent pAgent);
|
||||
// 销毁 HP_SSLPullClient 对象
|
||||
HPSOCKET_API void __HP_CALL Destroy_HP_SSLPullClient(HP_SSLPullClient pClient);
|
||||
// 销毁 HP_SSLPackServer 对象
|
||||
HPSOCKET_API void __HP_CALL Destroy_HP_SSLPackServer(HP_SSLPackServer pServer);
|
||||
// 销毁 HP_SSLPackAgent 对象
|
||||
HPSOCKET_API void __HP_CALL Destroy_HP_SSLPackAgent(HP_SSLPackAgent pAgent);
|
||||
// 销毁 HP_SSLPackClient 对象
|
||||
HPSOCKET_API void __HP_CALL Destroy_HP_SSLPackClient(HP_SSLPackClient pClient);
|
||||
|
||||
/*****************************************************************************************************************************************************/
|
||||
/*************************************************************** Global Function Exports *************************************************************/
|
||||
/*****************************************************************************************************************************************************/
|
||||
|
||||
/***************************************************************************************/
|
||||
/************************************ SSL 初始化方法 ************************************/
|
||||
|
||||
/*
|
||||
* 名称:SNI 默认回调函数
|
||||
* 描述:HP_SSLServer_SetupSSLContext 方法中如果不指定 SNI 回调函数则使用此 SNI 默认回调函数
|
||||
*
|
||||
* 参数: lpszServerName -- 请求域名
|
||||
* pContext -- SSL Context 对象
|
||||
*
|
||||
* 返回值:SNI 主机证书对应的索引
|
||||
*/
|
||||
HPSOCKET_API int __HP_CALL HP_SSL_DefaultServerNameCallback(LPCTSTR lpszServerName, PVOID pContext);
|
||||
|
||||
/*
|
||||
* 名称:清理线程局部环境 SSL 资源
|
||||
* 描述:任何一个操作 SSL 的线程,通信结束时都需要清理线程局部环境 SSL 资源
|
||||
* 1、主线程和 HP-Socket 工作线程在通信结束时会自动清理线程局部环境 SSL 资源。因此,一般情况下不必手工调用本方法
|
||||
* 2、特殊情况下,当自定义线程参与 HP-Socket 通信操作并检查到 SSL 内存泄漏时,需在每次通信结束时自定义线程调用本方法
|
||||
*
|
||||
* 参数: dwThreadID -- 线程 ID(0:当前线程)
|
||||
*
|
||||
* 返回值:无
|
||||
*/
|
||||
HPSOCKET_API void __HP_CALL HP_SSL_RemoveThreadLocalState(DWORD dwThreadID);
|
||||
|
||||
/*
|
||||
* 名称:初始化通信组件 SSL 环境参数
|
||||
* 描述:SSL 环境参数必须在 SSL 通信组件启动前完成初始化,否则启动失败
|
||||
*
|
||||
* 参数: iVerifyMode -- SSL 验证模式(参考 EnSSLVerifyMode)
|
||||
* lpszPemCertFile -- 证书文件
|
||||
* lpszPemKeyFile -- 私钥文件
|
||||
* lpszKeyPassword -- 私钥密码(没有密码则为空)
|
||||
* lpszCAPemCertFileOrPath -- CA 证书文件或目录(单向验证或客户端可选)
|
||||
* fnServerNameCallback -- SNI 回调函数指针(可选,如果为 nullptr 则使用 SNI 默认回调函数)
|
||||
*
|
||||
* 返回值: TRUE -- 成功
|
||||
* FALSE -- 失败,可通过 SYS_GetLastError() 获取失败原因
|
||||
*/
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLServer_SetupSSLContext(HP_SSLServer pServer, int iVerifyMode /* SSL_VM_NONE */, LPCTSTR lpszPemCertFile /* nullptr */, LPCTSTR lpszPemKeyFile /* nullptr */, LPCTSTR lpszKeyPassword /* nullptr */, LPCTSTR lpszCAPemCertFileOrPath /* nullptr */, HP_Fn_SNI_ServerNameCallback fnServerNameCallback /* nullptr */);
|
||||
|
||||
/*
|
||||
* 名称:初始化通信组件 SSL 环境参数(通过内存加载证书)
|
||||
* 描述:SSL 环境参数必须在 SSL 通信组件启动前完成初始化,否则启动失败
|
||||
*
|
||||
* 参数: iVerifyMode -- SSL 验证模式(参考 EnSSLVerifyMode)
|
||||
* lpszPemCert -- 证书内容
|
||||
* lpszPemKey -- 私钥内容
|
||||
* lpszKeyPassword -- 私钥密码(没有密码则为空)
|
||||
* lpszCAPemCert -- CA 证书内容(单向验证或客户端可选)
|
||||
* fnServerNameCallback -- SNI 回调函数指针(可选,如果为 nullptr 则使用 SNI 默认回调函数)
|
||||
*
|
||||
* 返回值: TRUE -- 成功
|
||||
* FALSE -- 失败,可通过 SYS_GetLastError() 获取失败原因
|
||||
*/
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLServer_SetupSSLContextByMemory(HP_SSLServer pServer, int iVerifyMode /* SSL_VM_NONE */, LPCSTR lpszPemCert /* nullptr */, LPCSTR lpszPemKey /* nullptr */, LPCSTR lpszKeyPassword /* nullptr */, LPCSTR lpszCAPemCert /* nullptr */, HP_Fn_SNI_ServerNameCallback fnServerNameCallback /* nullptr */);
|
||||
|
||||
/*
|
||||
* 名称:增加 SNI 主机证书
|
||||
* 描述:SSL 服务端在 SetupSSLContext() 成功后可以调用本方法增加多个 SNI 主机证书
|
||||
*
|
||||
* 参数: iVerifyMode -- SSL 验证模式(参考 EnSSLVerifyMode)
|
||||
* lpszPemCertFile -- 证书文件
|
||||
* lpszPemKeyFile -- 私钥文件
|
||||
* lpszKeyPassword -- 私钥密码(没有密码则为空)
|
||||
* lpszCAPemCertFileOrPath -- CA 证书文件或目录(单向验证可选)
|
||||
*
|
||||
* 返回值: 正数 -- 成功,并返回 SNI 主机证书对应的索引,该索引用于在 SNI 回调函数中定位 SNI 主机
|
||||
* 负数 -- 失败,可通过 SYS_GetLastError() 获取失败原因
|
||||
*/
|
||||
HPSOCKET_API int __HP_CALL HP_SSLServer_AddSSLContext(HP_SSLServer pServer, int iVerifyMode, LPCTSTR lpszPemCertFile, LPCTSTR lpszPemKeyFile, LPCTSTR lpszKeyPassword /* nullptr */, LPCTSTR lpszCAPemCertFileOrPath /* nullptr */);
|
||||
|
||||
/*
|
||||
* 名称:增加 SNI 主机证书(通过内存加载证书)
|
||||
* 描述:SSL 服务端在 SetupSSLContext() 成功后可以调用本方法增加多个 SNI 主机证书
|
||||
*
|
||||
* 参数: iVerifyMode -- SSL 验证模式(参考 EnSSLVerifyMode)
|
||||
* lpszPemCert -- 证书内容
|
||||
* lpszPemKey -- 私钥内容
|
||||
* lpszKeyPassword -- 私钥密码(没有密码则为空)
|
||||
* lpszCAPemCert -- CA 证书内容(单向验证可选)
|
||||
*
|
||||
* 返回值: 正数 -- 成功,并返回 SNI 主机证书对应的索引,该索引用于在 SNI 回调函数中定位 SNI 主机
|
||||
* 负数 -- 失败,可通过 SYS_GetLastError() 获取失败原因
|
||||
*/
|
||||
HPSOCKET_API int __HP_CALL HP_SSLServer_AddSSLContextByMemory(HP_SSLServer pServer, int iVerifyMode, LPCSTR lpszPemCert, LPCSTR lpszPemKey, LPCSTR lpszKeyPassword /* nullptr */, LPCSTR lpszCAPemCert /* nullptr */);
|
||||
|
||||
/*
|
||||
* 名称:绑定 SNI 主机域名
|
||||
* 描述:SSL 服务端在 AddSSLContext() 成功后可以调用本方法绑定主机域名到 SNI 主机证书
|
||||
*
|
||||
* 参数: lpszServerName -- 主机域名
|
||||
* iContextIndex -- SNI 主机证书对应的索引
|
||||
*
|
||||
* 返回值: TRUE -- 成功
|
||||
* FALSE -- 失败,可通过 SYS_GetLastError() 获取失败原因
|
||||
*/
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLServer_BindSSLServerName(HP_SSLServer pServer, LPCTSTR lpszServerName, int iContextIndex);
|
||||
|
||||
/*
|
||||
* 名称:清理通信组件 SSL 运行环境
|
||||
* 描述:清理通信组件 SSL 运行环境,回收 SSL 相关内存
|
||||
* 1、通信组件析构时会自动调用本方法
|
||||
* 2、当要重新设置通信组件 SSL 环境参数时,需要先调用本方法清理原先的环境参数
|
||||
*
|
||||
* 参数: 无
|
||||
*
|
||||
* 返回值:无
|
||||
*/
|
||||
HPSOCKET_API void __HP_CALL HP_SSLServer_CleanupSSLContext(HP_SSLServer pServer);
|
||||
|
||||
/*
|
||||
* 名称:初始化通信组件 SSL 环境参数
|
||||
* 描述:SSL 环境参数必须在 SSL 通信组件启动前完成初始化,否则启动失败
|
||||
*
|
||||
* 参数: iVerifyMode -- SSL 验证模式(参考 EnSSLVerifyMode)
|
||||
* lpszPemCertFile -- 证书文件(客户端可选)
|
||||
* lpszPemKeyFile -- 私钥文件(客户端可选)
|
||||
* lpszKeyPassword -- 私钥密码(没有密码则为空)
|
||||
* lpszCAPemCertFileOrPath -- CA 证书文件或目录(单向验证或客户端可选)
|
||||
*
|
||||
* 返回值: TRUE -- 成功
|
||||
* FALSE -- 失败,可通过 SYS_GetLastError() 获取失败原因
|
||||
*/
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLAgent_SetupSSLContext(HP_SSLAgent pAgent, int iVerifyMode /* SSL_VM_NONE */, LPCTSTR lpszPemCertFile /* nullptr */, LPCTSTR lpszPemKeyFile /* nullptr */, LPCTSTR lpszKeyPassword /* nullptr */, LPCTSTR lpszCAPemCertFileOrPath /* nullptr */);
|
||||
|
||||
/*
|
||||
* 名称:初始化通信组件 SSL 环境参数(通过内存加载证书)
|
||||
* 描述:SSL 环境参数必须在 SSL 通信组件启动前完成初始化,否则启动失败
|
||||
*
|
||||
* 参数: iVerifyMode -- SSL 验证模式(参考 EnSSLVerifyMode)
|
||||
* lpszPemCert -- 证书内容
|
||||
* lpszPemKey -- 私钥内容
|
||||
* lpszKeyPassword -- 私钥密码(没有密码则为空)
|
||||
* lpszCAPemCert -- CA 证书内容(单向验证或客户端可选)
|
||||
*
|
||||
* 返回值: TRUE -- 成功
|
||||
* FALSE -- 失败,可通过 SYS_GetLastError() 获取失败原因
|
||||
*/
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLAgent_SetupSSLContextByMemory(HP_SSLAgent pAgent, int iVerifyMode /* SSL_VM_NONE */, LPCSTR lpszPemCert /* nullptr */, LPCSTR lpszPemKey /* nullptr */, LPCSTR lpszKeyPassword /* nullptr */, LPCSTR lpszCAPemCert /* nullptr */);
|
||||
|
||||
/*
|
||||
* 名称:清理通信组件 SSL 运行环境
|
||||
* 描述:清理通信组件 SSL 运行环境,回收 SSL 相关内存
|
||||
* 1、通信组件析构时会自动调用本方法
|
||||
* 2、当要重新设置通信组件 SSL 环境参数时,需要先调用本方法清理原先的环境参数
|
||||
*
|
||||
* 参数: 无
|
||||
*
|
||||
* 返回值:无
|
||||
*/
|
||||
HPSOCKET_API void __HP_CALL HP_SSLAgent_CleanupSSLContext(HP_SSLAgent pAgent);
|
||||
|
||||
/*
|
||||
* 名称:初始化通信组件 SSL 环境参数
|
||||
* 描述:SSL 环境参数必须在 SSL 通信组件启动前完成初始化,否则启动失败
|
||||
*
|
||||
* 参数: iVerifyMode -- SSL 验证模式(参考 EnSSLVerifyMode)
|
||||
* lpszPemCertFile -- 证书文件(客户端可选)
|
||||
* lpszPemKeyFile -- 私钥文件(客户端可选)
|
||||
* lpszKeyPassword -- 私钥密码(没有密码则为空)
|
||||
* lpszCAPemCertFileOrPath -- CA 证书文件或目录(单向验证或客户端可选)
|
||||
*
|
||||
* 返回值: TRUE -- 成功
|
||||
* FALSE -- 失败,可通过 SYS_GetLastError() 获取失败原因
|
||||
*/
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLClient_SetupSSLContext(HP_SSLClient pClient, int iVerifyMode /* SSL_VM_NONE */, LPCTSTR lpszPemCertFile /* nullptr */, LPCTSTR lpszPemKeyFile /* nullptr */, LPCTSTR lpszKeyPassword /* nullptr */, LPCTSTR lpszCAPemCertFileOrPath /* nullptr */);
|
||||
|
||||
/*
|
||||
* 名称:初始化通信组件 SSL 环境参数(通过内存加载证书)
|
||||
* 描述:SSL 环境参数必须在 SSL 通信组件启动前完成初始化,否则启动失败
|
||||
*
|
||||
* 参数: iVerifyMode -- SSL 验证模式(参考 EnSSLVerifyMode)
|
||||
* lpszPemCert -- 证书内容
|
||||
* lpszPemKey -- 私钥内容
|
||||
* lpszKeyPassword -- 私钥密码(没有密码则为空)
|
||||
* lpszCAPemCert -- CA 证书内容(单向验证或客户端可选)
|
||||
*
|
||||
* 返回值: TRUE -- 成功
|
||||
* FALSE -- 失败,可通过 SYS_GetLastError() 获取失败原因
|
||||
*/
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLClient_SetupSSLContextByMemory(HP_SSLClient pClient, int iVerifyMode /* SSL_VM_NONE */, LPCSTR lpszPemCert /* nullptr */, LPCSTR lpszPemKey /* nullptr */, LPCSTR lpszKeyPassword /* nullptr */, LPCSTR lpszCAPemCert /* nullptr */);
|
||||
|
||||
/*
|
||||
* 名称:清理通信组件 SSL 运行环境
|
||||
* 描述:清理通信组件 SSL 运行环境,回收 SSL 相关内存
|
||||
* 1、通信组件析构时会自动调用本方法
|
||||
* 2、当要重新设置通信组件 SSL 环境参数时,需要先调用本方法清理原先的环境参数
|
||||
*
|
||||
* 参数: 无
|
||||
*
|
||||
* 返回值:无
|
||||
*/
|
||||
HPSOCKET_API void __HP_CALL HP_SSLClient_CleanupSSLContext(HP_SSLClient pClient);
|
||||
|
||||
/***************************************************************************************/
|
||||
/************************************* SSL 操作方法 ************************************/
|
||||
|
||||
/*
|
||||
* 名称:启动 SSL 握手
|
||||
* 描述:当通信组件设置为非自动握手时,需要调用本方法启动 SSL 握手
|
||||
*
|
||||
* 返回值: TRUE -- 成功
|
||||
* FALSE -- 失败,可通过 SYS_GetLastError() 获取失败原因
|
||||
*/
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLServer_StartSSLHandShake(HP_SSLServer pServer, HP_CONNID dwConnID);
|
||||
|
||||
/* 设置通信组件握手方式(默认:TRUE,自动握手) */
|
||||
HPSOCKET_API void __HP_CALL HP_SSLServer_SetSSLAutoHandShake(HP_SSLServer pServer, BOOL bAutoHandShake);
|
||||
/* 获取通信组件握手方式 */
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLServer_IsSSLAutoHandShake(HP_SSLServer pServer);
|
||||
|
||||
/* 设置 SSL 加密算法列表 */
|
||||
HPSOCKET_API void __HP_CALL HP_SSLServer_SetSSLCipherList(HP_SSLServer pServer, LPCTSTR lpszCipherList);
|
||||
/* 获取 SSL 加密算法列表 */
|
||||
HPSOCKET_API LPCTSTR __HP_CALL HP_SSLServer_GetSSLCipherList(HP_SSLServer pServer);
|
||||
|
||||
/*
|
||||
* 名称:获取 SSL Session 信息
|
||||
* 描述:获取指定类型的 SSL Session 信息(输出类型参考:En_HP_SSLSessionInfo)
|
||||
*
|
||||
* 返回值: TRUE -- 成功
|
||||
* FALSE -- 失败,可通过 SYS_GetLastError() 获取失败原因
|
||||
*/
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLServer_GetSSLSessionInfo(HP_SSLServer pServer, HP_CONNID dwConnID, En_HP_SSLSessionInfo enInfo, LPVOID* lppInfo);
|
||||
|
||||
/*
|
||||
* 名称:启动 SSL 握手
|
||||
* 描述:当通信组件设置为非自动握手时,需要调用本方法启动 SSL 握手
|
||||
*
|
||||
* 返回值: TRUE -- 成功
|
||||
* FALSE -- 失败,可通过 SYS_GetLastError() 获取失败原因
|
||||
*/
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLAgent_StartSSLHandShake(HP_SSLAgent pAgent, HP_CONNID dwConnID);
|
||||
|
||||
/* 设置通信组件握手方式(默认:TRUE,自动握手) */
|
||||
HPSOCKET_API void __HP_CALL HP_SSLAgent_SetSSLAutoHandShake(HP_SSLAgent pAgent, BOOL bAutoHandShake);
|
||||
/* 获取通信组件握手方式 */
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLAgent_IsSSLAutoHandShake(HP_SSLAgent pAgent);
|
||||
|
||||
/* 设置 SSL 加密算法列表 */
|
||||
HPSOCKET_API void __HP_CALL HP_SSLAgent_SetSSLCipherList(HP_SSLAgent pAgent, LPCTSTR lpszCipherList);
|
||||
/* 获取 SSL 加密算法列表 */
|
||||
HPSOCKET_API LPCTSTR __HP_CALL HP_SSLAgent_GetSSLCipherList(HP_SSLAgent pAgent);
|
||||
|
||||
/*
|
||||
* 名称:获取 SSL Session 信息
|
||||
* 描述:获取指定类型的 SSL Session 信息(输出类型参考:En_HP_SSLSessionInfo)
|
||||
*
|
||||
* 返回值: TRUE -- 成功
|
||||
* FALSE -- 失败,可通过 SYS_GetLastError() 获取失败原因
|
||||
*/
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLAgent_GetSSLSessionInfo(HP_SSLAgent pAgent, HP_CONNID dwConnID, En_HP_SSLSessionInfo enInfo, LPVOID* lppInfo);
|
||||
|
||||
/*
|
||||
* 名称:启动 SSL 握手
|
||||
* 描述:当通信组件设置为非自动握手时,需要调用本方法启动 SSL 握手
|
||||
*
|
||||
* 返回值: TRUE -- 成功
|
||||
* FALSE -- 失败,可通过 SYS_GetLastError() 获取失败原因
|
||||
*/
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLClient_StartSSLHandShake(HP_SSLClient pClient);
|
||||
|
||||
/* 设置通信组件握手方式(默认:TRUE,自动握手) */
|
||||
HPSOCKET_API void __HP_CALL HP_SSLClient_SetSSLAutoHandShake(HP_SSLClient pClient, BOOL bAutoHandShake);
|
||||
/* 获取通信组件握手方式 */
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLClient_IsSSLAutoHandShake(HP_SSLClient pClient);
|
||||
|
||||
/* 设置 SSL 加密算法列表 */
|
||||
HPSOCKET_API void __HP_CALL HP_SSLClient_SetSSLCipherList(HP_SSLClient pClient, LPCTSTR lpszCipherList);
|
||||
/* 获取 SSL 加密算法列表 */
|
||||
HPSOCKET_API LPCTSTR __HP_CALL HP_SSLClient_GetSSLCipherList(HP_SSLClient pClient);
|
||||
|
||||
/*
|
||||
* 名称:获取 SSL Session 信息
|
||||
* 描述:获取指定类型的 SSL Session 信息(输出类型参考:En_HP_SSLSessionInfo)
|
||||
*
|
||||
* 返回值: TRUE -- 成功
|
||||
* FALSE -- 失败,可通过 SYS_GetLastError() 获取失败原因
|
||||
*/
|
||||
HPSOCKET_API BOOL __HP_CALL HP_SSLClient_GetSSLSessionInfo(HP_SSLClient pClient, En_HP_SSLSessionInfo enInfo, LPVOID* lppInfo);
|
||||
|
||||
/*****************************************************************************************************************************************************/
|
||||
/******************************************************************** HTTPS Exports ******************************************************************/
|
||||
/*****************************************************************************************************************************************************/
|
||||
|
||||
#ifdef _HTTP_SUPPORT
|
||||
|
||||
/****************************************************/
|
||||
/**************** HTTPS 对象创建函数 *****************/
|
||||
|
||||
// 创建 HP_HttpsServer 对象
|
||||
HPSOCKET_API HP_HttpsServer __HP_CALL Create_HP_HttpsServer(HP_HttpServerListener pListener);
|
||||
// 创建 HP_HttpsAgent 对象
|
||||
HPSOCKET_API HP_HttpsAgent __HP_CALL Create_HP_HttpsAgent(HP_HttpAgentListener pListener);
|
||||
// 创建 HP_HttpsClient 对象
|
||||
HPSOCKET_API HP_HttpsClient __HP_CALL Create_HP_HttpsClient(HP_HttpClientListener pListener);
|
||||
// 创建 HP_HttpsSyncClient 对象
|
||||
HPSOCKET_API HP_HttpsSyncClient __HP_CALL Create_HP_HttpsSyncClient(HP_HttpClientListener pListener);
|
||||
|
||||
// 销毁 HP_HttpsServer 对象
|
||||
HPSOCKET_API void __HP_CALL Destroy_HP_HttpsServer(HP_HttpsServer pServer);
|
||||
// 销毁 HP_HttpsAgent 对象
|
||||
HPSOCKET_API void __HP_CALL Destroy_HP_HttpsAgent(HP_HttpsAgent pAgent);
|
||||
// 销毁 HP_HttpsClient 对象
|
||||
HPSOCKET_API void __HP_CALL Destroy_HP_HttpsClient(HP_HttpsClient pClient);
|
||||
// 销毁 HP_HttpsSyncClient 对象
|
||||
HPSOCKET_API void __HP_CALL Destroy_HP_HttpsSyncClient(HP_HttpsSyncClient pClient);
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|