diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 97d9f8ef46..ec1ff249b6 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -1,5 +1,12 @@
Date Added
+2010/12/29
+ * Fixed 'console' plugin not working on Windows, due to NULL passed to CreateThread instead of required pointer to thread id variable. [Ai4rei]
+ - Fixed 'console' plugin causing delete_timer error when it fails to load, due to uninitialized variable.
+ * Renamed plugin.def to sample.def and added 'sample' plugin exports into it, as it's purpose is nothing than a sample right now.
+ - Also added .def files for 'gui' and 'pid' plugins as MSVC does not export everything automatically and missing event export cause the plugins silently failing.
+ - Added VS6, VS8 and VS9 projects for compiling plug-ins, which can be used on Windows.
+ * The plug-in system will now report, if it cannot import an event function.
2010/12/28
* Fixed char-server making assumptions about RFIFO data length in character deletion packet (since r10909). [Ai4rei]
* Fixed login-server discarding RFIFO data, when the length is 1 byte; minimum packet size is 2 bytes (since r5027).
diff --git a/eAthena-6.dsw b/eAthena-6.dsw
index c28270df22..6cb2169e0a 100644
--- a/eAthena-6.dsw
+++ b/eAthena-6.dsw
@@ -75,6 +75,42 @@ Package=<4>
###############################################################################
+Project: "console"=".\vcproj-6\plugin-console.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "gui"=".\vcproj-6\plugin-gui.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "pid"=".\vcproj-6\plugin-pid.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
Global:
Package=<5>
diff --git a/eAthena-8.sln b/eAthena-8.sln
index ea940b9571..1afd083d48 100644
--- a/eAthena-8.sln
+++ b/eAthena-8.sln
@@ -20,6 +20,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-login", "vcpr
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-char", "vcproj-8\txt-converter-char.vcproj", "{D356871D-58E1-450B-967A-EAE9646175AF}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-console", "vcproj-8\plugin-console.vcproj", "{73E1101A-310C-4453-8F45-FD2795ABEF15}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-gui", "vcproj-8\plugin-gui.vcproj", "{7B8997FF-A2B1-4E3C-B6A9-9290F31056DB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-pid", "vcproj-8\plugin-pid.vcproj", "{9509E1B9-DA2B-4153-9EE0-CBCA6597F198}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -132,6 +138,18 @@ Global
{D356871D-58E1-450B-967A-EAE9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
{D356871D-58E1-450B-967A-EAE9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
{D356871D-58E1-450B-967A-EAE9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+ {73E1101A-310C-4453-8F45-FD2795ABEF15}.Debug|Win32.ActiveCfg = Debug|Win32
+ {73E1101A-310C-4453-8F45-FD2795ABEF15}.Debug|Win32.Build.0 = Debug|Win32
+ {73E1101A-310C-4453-8F45-FD2795ABEF15}.Release|Win32.ActiveCfg = Release|Win32
+ {73E1101A-310C-4453-8F45-FD2795ABEF15}.Release|Win32.Build.0 = Release|Win32
+ {7B8997FF-A2B1-4E3C-B6A9-9290F31056DB}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7B8997FF-A2B1-4E3C-B6A9-9290F31056DB}.Debug|Win32.Build.0 = Debug|Win32
+ {7B8997FF-A2B1-4E3C-B6A9-9290F31056DB}.Release|Win32.ActiveCfg = Release|Win32
+ {7B8997FF-A2B1-4E3C-B6A9-9290F31056DB}.Release|Win32.Build.0 = Release|Win32
+ {9509E1B9-DA2B-4153-9EE0-CBCA6597F198}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9509E1B9-DA2B-4153-9EE0-CBCA6597F198}.Debug|Win32.Build.0 = Debug|Win32
+ {9509E1B9-DA2B-4153-9EE0-CBCA6597F198}.Release|Win32.ActiveCfg = Release|Win32
+ {9509E1B9-DA2B-4153-9EE0-CBCA6597F198}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/eAthena-9.sln b/eAthena-9.sln
index a0aeda49f6..2a9201785a 100644
--- a/eAthena-9.sln
+++ b/eAthena-9.sln
@@ -20,6 +20,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-login", "vcpr
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-char", "vcproj-9\txt-converter-char.vcproj", "{D356871D-58E1-450B-967A-EAE9646175AF}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-console", "vcproj-9\plugin-console.vcproj", "{73E1101A-310C-4453-8F45-FD2795ABEF15}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-gui", "vcproj-9\plugin-gui.vcproj", "{7B8997FF-A2B1-4E3C-B6A9-9290F31056DB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-pid", "vcproj-9\plugin-pid.vcproj", "{9509E1B9-DA2B-4153-9EE0-CBCA6597F198}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -132,6 +138,18 @@ Global
{D356871D-58E1-450B-967A-EAE9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
{D356871D-58E1-450B-967A-EAE9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
{D356871D-58E1-450B-967A-EAE9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+ {73E1101A-310C-4453-8F45-FD2795ABEF15}.Debug|Win32.ActiveCfg = Debug|Win32
+ {73E1101A-310C-4453-8F45-FD2795ABEF15}.Debug|Win32.Build.0 = Debug|Win32
+ {73E1101A-310C-4453-8F45-FD2795ABEF15}.Release|Win32.ActiveCfg = Release|Win32
+ {73E1101A-310C-4453-8F45-FD2795ABEF15}.Release|Win32.Build.0 = Release|Win32
+ {7B8997FF-A2B1-4E3C-B6A9-9290F31056DB}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7B8997FF-A2B1-4E3C-B6A9-9290F31056DB}.Debug|Win32.Build.0 = Debug|Win32
+ {7B8997FF-A2B1-4E3C-B6A9-9290F31056DB}.Release|Win32.ActiveCfg = Release|Win32
+ {7B8997FF-A2B1-4E3C-B6A9-9290F31056DB}.Release|Win32.Build.0 = Release|Win32
+ {9509E1B9-DA2B-4153-9EE0-CBCA6597F198}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9509E1B9-DA2B-4153-9EE0-CBCA6597F198}.Debug|Win32.Build.0 = Debug|Win32
+ {9509E1B9-DA2B-4153-9EE0-CBCA6597F198}.Release|Win32.ActiveCfg = Release|Win32
+ {9509E1B9-DA2B-4153-9EE0-CBCA6597F198}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/common/plugins.c b/src/common/plugins.c
index 2d81548a17..2d50fc9e88 100644
--- a/src/common/plugins.c
+++ b/src/common/plugins.c
@@ -251,6 +251,8 @@ Plugin* plugin_open(const char* filename)
func = (Plugin_Event_Func*)DLL_SYM(plugin->dll, events[i].func_name);
if (func)
register_plugin_event(func, events[i].event_name);
+ else
+ ShowError("Failed to locate function '%s' in '%s'.\n", events[i].func_name, filename);
}
i++;
}
diff --git a/src/login/login.c b/src/login/login.c
index 158ba51504..0876f3fb2c 100644
--- a/src/login/login.c
+++ b/src/login/login.c
@@ -331,7 +331,7 @@ int parse_console(char* buf)
sscanf(buf, "%[^\n]", command);
- ShowInfo("Console command :%s", command);
+ ShowInfo("Console command :%s\n", command);
if( strcmpi("shutdown", command) == 0 ||
strcmpi("exit", command) == 0 ||
diff --git a/src/plugins/console.c b/src/plugins/console.c
index 5056eafdc8..7ea69c6373 100644
--- a/src/plugins/console.c
+++ b/src/plugins/console.c
@@ -32,7 +32,8 @@
#define WORKER_FUNC_END(name) } ExitThread(0); return 0; }
#define WORKER_EXECUTE(name,errvar) \
do{ \
- buf.worker = CreateThread(NULL, 0, worker_ ## name, NULL, CREATE_SUSPENDED, NULL); \
+ DWORD dwThreadId; \
+ buf.worker = CreateThread(NULL, 0, worker_ ## name, NULL, CREATE_SUSPENDED, &dwThreadId); \
if( errvar ) \
*errvar = ( buf.worker == NULL ); \
}while(0)
@@ -135,7 +136,7 @@ unsigned int (*gettick)(void);
int (*parse_console)(char* buf);
// Locals
-int tid; // timer id
+int tid = -1; // timer id
BUFFER buf; // input buffer
WORKER_FUNC_DECLARE(getinput); // worker for the input buffer
diff --git a/src/plugins/plugin.def b/src/plugins/gui.def
similarity index 88%
rename from src/plugins/plugin.def
rename to src/plugins/gui.def
index 6117bedc67..0a5d6a714f 100644
--- a/src/plugins/plugin.def
+++ b/src/plugins/gui.def
@@ -2,3 +2,5 @@ EXPORTS
plugin_info DATA
plugin_event_table DATA
plugin_call_table DATA
+
+ gui_init
diff --git a/src/plugins/pid.def b/src/plugins/pid.def
new file mode 100644
index 0000000000..a70cf8127f
--- /dev/null
+++ b/src/plugins/pid.def
@@ -0,0 +1,7 @@
+EXPORTS
+ plugin_info DATA
+ plugin_event_table DATA
+ plugin_call_table DATA
+
+ pid_create
+ pid_delete
diff --git a/src/plugins/sample.def b/src/plugins/sample.def
new file mode 100644
index 0000000000..f5c4af6521
--- /dev/null
+++ b/src/plugins/sample.def
@@ -0,0 +1,11 @@
+EXPORTS
+ ; common exports
+ plugin_info DATA
+ plugin_event_table DATA
+ plugin_call_table DATA
+
+ ; plugin-specific exports
+ test_me
+ do_init
+ do_final
+ some_function
diff --git a/vcproj-6/plugin-console.dsp b/vcproj-6/plugin-console.dsp
new file mode 100644
index 0000000000..f61a7c0b2d
--- /dev/null
+++ b/vcproj-6/plugin-console.dsp
@@ -0,0 +1,103 @@
+# Microsoft Developer Studio Project File - Name="console" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=console - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "console.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "console.mak" CFG="console - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "console - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "console - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "console - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release/console"
+# PROP Intermediate_Dir "Release/console"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CONSOLE_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX- /O2 /I "../3rdparty/msinttypes/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /Oicf /win32
+# SUBTRACT MTL /mktyplib203
+# ADD BASE RSC /l 0x405 /d "NDEBUG"
+# ADD RSC /l 0x417 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 kernel32.lib /nologo /dll /pdb:"../plugins/console.pdb" /machine:I386 /out:"../plugins/console.dll"
+
+!ELSEIF "$(CFG)" == "console - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug/console"
+# PROP Intermediate_Dir "Debug/console"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CONSOLE_EXPORTS" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX- /ZI /Od /I "../3rdparty/msinttypes/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FD /GZ /c
+# SUBTRACT CPP /YX
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /Oicf /win32
+# SUBTRACT MTL /mktyplib203
+# ADD BASE RSC /l 0x405 /d "_DEBUG"
+# ADD RSC /l 0x417 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib /nologo /dll /pdb:"../plugins/console.pdb" /debug /machine:I386 /out:"../plugins/console.dll" /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "console - Win32 Release"
+# Name "console - Win32 Debug"
+# Begin Source File
+
+SOURCE=..\src\plugins\console.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\src\plugins\console.def
+# End Source File
+# End Target
+# End Project
diff --git a/vcproj-6/plugin-gui.dsp b/vcproj-6/plugin-gui.dsp
new file mode 100644
index 0000000000..ec484d85e6
--- /dev/null
+++ b/vcproj-6/plugin-gui.dsp
@@ -0,0 +1,103 @@
+# Microsoft Developer Studio Project File - Name="gui" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=gui - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "gui.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "gui.mak" CFG="gui - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "gui - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "gui - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "gui - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release/gui"
+# PROP Intermediate_Dir "Release/gui"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "GUI_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX- /O2 /I "../3rdparty/msinttypes/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /Oicf /win32
+# SUBTRACT MTL /mktyplib203
+# ADD BASE RSC /l 0x405 /d "NDEBUG"
+# ADD RSC /l 0x417 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 kernel32.lib /nologo /dll /pdb:"../plugins/gui.pdb" /machine:I386 /out:"../plugins/gui.dll"
+
+!ELSEIF "$(CFG)" == "gui - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug/gui"
+# PROP Intermediate_Dir "Debug/gui"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "GUI_EXPORTS" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX- /ZI /Od /I "../3rdparty/msinttypes/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FD /GZ /c
+# SUBTRACT CPP /YX
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /Oicf /win32
+# SUBTRACT MTL /mktyplib203
+# ADD BASE RSC /l 0x405 /d "_DEBUG"
+# ADD RSC /l 0x417 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib /nologo /dll /pdb:"../plugins/gui.pdb" /debug /machine:I386 /out:"../plugins/gui.dll" /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "gui - Win32 Release"
+# Name "gui - Win32 Debug"
+# Begin Source File
+
+SOURCE=..\src\plugins\gui.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\src\plugins\gui.def
+# End Source File
+# End Target
+# End Project
diff --git a/vcproj-6/plugin-pid.dsp b/vcproj-6/plugin-pid.dsp
new file mode 100644
index 0000000000..6626de710a
--- /dev/null
+++ b/vcproj-6/plugin-pid.dsp
@@ -0,0 +1,103 @@
+# Microsoft Developer Studio Project File - Name="pid" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=pid - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "pid.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "pid.mak" CFG="pid - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "pid - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "pid - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "pid - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release/pid"
+# PROP Intermediate_Dir "Release/pid"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PID_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX- /O2 /I "../3rdparty/msinttypes/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /Oicf /win32
+# SUBTRACT MTL /mktyplib203
+# ADD BASE RSC /l 0x405 /d "NDEBUG"
+# ADD RSC /l 0x417 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 kernel32.lib /nologo /dll /pdb:"../plugins/pid.pdb" /machine:I386 /out:"../plugins/pid.dll"
+
+!ELSEIF "$(CFG)" == "pid - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug/pid"
+# PROP Intermediate_Dir "Debug/pid"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PID_EXPORTS" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX- /ZI /Od /I "../3rdparty/msinttypes/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FD /GZ /c
+# SUBTRACT CPP /YX
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /Oicf /win32
+# SUBTRACT MTL /mktyplib203
+# ADD BASE RSC /l 0x405 /d "_DEBUG"
+# ADD RSC /l 0x417 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib /nologo /dll /pdb:"../plugins/pid.pdb" /debug /machine:I386 /out:"../plugins/pid.dll" /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "pid - Win32 Release"
+# Name "pid - Win32 Debug"
+# Begin Source File
+
+SOURCE=..\src\plugins\pid.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\src\plugins\pid.def
+# End Source File
+# End Target
+# End Project
diff --git a/vcproj-8/plugin-console.vcproj b/vcproj-8/plugin-console.vcproj
new file mode 100644
index 0000000000..ac3c6de6d7
--- /dev/null
+++ b/vcproj-8/plugin-console.vcproj
@@ -0,0 +1,234 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vcproj-8/plugin-gui.vcproj b/vcproj-8/plugin-gui.vcproj
new file mode 100644
index 0000000000..9bf4cc40d6
--- /dev/null
+++ b/vcproj-8/plugin-gui.vcproj
@@ -0,0 +1,234 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vcproj-8/plugin-pid.vcproj b/vcproj-8/plugin-pid.vcproj
new file mode 100644
index 0000000000..8b24e03af5
--- /dev/null
+++ b/vcproj-8/plugin-pid.vcproj
@@ -0,0 +1,234 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vcproj-9/plugin-console.vcproj b/vcproj-9/plugin-console.vcproj
new file mode 100644
index 0000000000..24f21957c2
--- /dev/null
+++ b/vcproj-9/plugin-console.vcproj
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vcproj-9/plugin-gui.vcproj b/vcproj-9/plugin-gui.vcproj
new file mode 100644
index 0000000000..dda42a8b4b
--- /dev/null
+++ b/vcproj-9/plugin-gui.vcproj
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vcproj-9/plugin-pid.vcproj b/vcproj-9/plugin-pid.vcproj
new file mode 100644
index 0000000000..ffc9231bfe
--- /dev/null
+++ b/vcproj-9/plugin-pid.vcproj
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+