make MzCOM and MysterX build with the new DLL-in-plt/lib arrangement; some problems remain

svn: r2782
This commit is contained in:
Matthew Flatt 2006-04-25 19:56:30 +00:00
parent c6bac6f498
commit 3dca44227a
19 changed files with 177 additions and 128 deletions

View File

@ -633,10 +633,10 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR ignored
{ {
/* Order matters: load dependencies first */ /* Order matters: load dependencies first */
# ifndef MZ_PRECISE_GC # ifndef MZ_PRECISE_GC
load_delayed_dll("libmzgcxxxxxxx.dll"); load_delayed_dll(NULL, "libmzgcxxxxxxx.dll");
# endif # endif
load_delayed_dll("libmzsch" DLL_3M_SUFFIX "xxxxxxx.dll"); load_delayed_dll(NULL, "libmzsch" DLL_3M_SUFFIX "xxxxxxx.dll");
load_delayed_dll("libmred" DLL_3M_SUFFIX "xxxxxxx.dll"); load_delayed_dll(NULL, "libmred" DLL_3M_SUFFIX "xxxxxxx.dll");
record_dll_path(); record_dll_path();
return WinMain_dlls_ready(hInstance, hPrevInstance, ignored, nCmdShow); return WinMain_dlls_ready(hInstance, hPrevInstance, ignored, nCmdShow);

View File

@ -38,7 +38,7 @@ Scheme_Object *safeArrayElementToSchemeObject(SAFEARRAY *theArray,
case VT_UI1 : case VT_UI1 :
char cArg; char cArg;
SafeArrayGetElement(theArray,allIndices,&cArg); SafeArrayGetElement(theArray,allIndices,&cArg);
return scheme_make_character(cArg); return scheme_make_char(cArg);
case VT_UI2 : case VT_UI2 :
unsigned short usArg; unsigned short usArg;

View File

@ -4,6 +4,9 @@
#include "escheme.h" #include "escheme.h"
/* This indirection lets us delayload libmzsch.dll: */
#define scheme_false (scheme_make_false())
// fwd ref // fwd ref
BSTR schemeToBSTR (Scheme_Object * obj); BSTR schemeToBSTR (Scheme_Object * obj);

View File

@ -8,6 +8,8 @@
#include "myssink_i.c" #include "myssink_i.c"
#include "Sink.h" #include "Sink.h"
#define DLL_RELATIVE_PATH "."
#include "../../mzscheme/delayed.inc"
CComModule _Module; CComModule _Module;
@ -23,6 +25,8 @@ BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
{ {
if (dwReason == DLL_PROCESS_ATTACH) if (dwReason == DLL_PROCESS_ATTACH)
{ {
load_delayed_dll(hInstance, "libmzgcxxxxxxx.dll");
load_delayed_dll(hInstance, "libmzschxxxxxxx.dll");
_Module.Init(ObjectMap, hInstance, &LIBID_MYSSINKLib); _Module.Init(ObjectMap, hInstance, &LIBID_MYSSINKLib);
DisableThreadLibraryCalls(hInstance); DisableThreadLibraryCalls(hInstance);
} }

View File

@ -10,6 +10,9 @@
#include "sink.h" #include "sink.h"
#include "comtypes.h" #include "comtypes.h"
#define scheme_current_thread (scheme_get_current_thread())
#define scheme_false (scheme_make_false())
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// CSink // CSink
@ -153,31 +156,31 @@ Scheme_Object *CSink::variantToSchemeObject(VARIANTARG *pVariantArg) {
case VT_NULL : case VT_NULL :
return scheme_void; return scheme_make_void();
case VT_I1 : case VT_I1 :
return scheme_make_character(pVariantArg->cVal); return scheme_make_char(pVariantArg->cVal);
case VT_I1 | VT_BYREF : case VT_I1 | VT_BYREF :
return scheme_box(scheme_make_character(*pVariantArg->pcVal)); return scheme_box(scheme_make_char(*pVariantArg->pcVal));
case VT_UI1 : case VT_UI1 :
return scheme_make_character((char)(pVariantArg->bVal)); return scheme_make_char((char)(pVariantArg->bVal));
case VT_UI1 | VT_BYREF : case VT_UI1 | VT_BYREF :
return scheme_box(scheme_make_character((char)(*pVariantArg->pbVal))); return scheme_box(scheme_make_char((char)(*pVariantArg->pbVal)));
case VT_UI2 : case VT_UI2 :
return scheme_make_character((char)(pVariantArg->bVal)); return scheme_make_char((char)(pVariantArg->bVal));
case VT_UI2 | VT_BYREF : case VT_UI2 | VT_BYREF :
return scheme_box(scheme_make_character((char)(*pVariantArg->pbVal))); return scheme_box(scheme_make_char((char)(*pVariantArg->pbVal)));
case VT_I2 : case VT_I2 :
@ -433,7 +436,7 @@ void CSink::unmarshalSchemeObject(Scheme_Object *obj,VARIANTARG *pVariantArg) {
case VT_BOOL | VT_BYREF : case VT_BOOL | VT_BYREF :
*(pVariantArg->pboolVal) = (val == scheme_false) ? 0 : -1; *(pVariantArg->pboolVal) = (val == scheme_make_false()) ? 0 : -1;
break; break;
case VT_ERROR | VT_BYREF : case VT_ERROR | VT_BYREF :
@ -634,3 +637,4 @@ HRESULT CSink::Invoke(DISPID dispId, REFIID, LCID, WORD,
memcpy(&scheme_error_buf, &jmpSave, sizeof(mz_jmp_buf)); memcpy(&scheme_error_buf, &jmpSave, sizeof(mz_jmp_buf));
return S_OK; return S_OK;
} }

View File

@ -3124,7 +3124,7 @@ Scheme_Object *variantToSchemeObject (VARIANTARG *pVariantArg)
return scheme_void; return scheme_void;
case VT_I1 : case VT_I1 :
return scheme_make_character (pVariantArg->cVal); return scheme_make_char (pVariantArg->cVal);
case VT_I2 : case VT_I2 :
return scheme_make_integer_value (pVariantArg->iVal); return scheme_make_integer_value (pVariantArg->iVal);
@ -3136,7 +3136,7 @@ Scheme_Object *variantToSchemeObject (VARIANTARG *pVariantArg)
return scheme_make_integer_value_from_long_long (pVariantArg->llVal); return scheme_make_integer_value_from_long_long (pVariantArg->llVal);
case VT_UI1 : case VT_UI1 :
return scheme_make_character ((char) (pVariantArg->bVal)); return scheme_make_char ((char) (pVariantArg->bVal));
case VT_UI2 : case VT_UI2 :
return scheme_make_integer (pVariantArg->uiVal); return scheme_make_integer (pVariantArg->uiVal);
@ -3203,7 +3203,7 @@ Scheme_Object *retvalVariantToSchemeObject (VARIANTARG *pVariantArg)
case VT_VOID : case VT_VOID :
return scheme_void; return scheme_void;
case VT_BYREF|VT_UI1 : case VT_BYREF|VT_UI1 :
return scheme_make_character (*pVariantArg->pcVal); return scheme_make_char (*pVariantArg->pcVal);
case VT_BYREF|VT_I2 : case VT_BYREF|VT_I2 :
return scheme_make_integer (*pVariantArg->piVal); return scheme_make_integer (*pVariantArg->piVal);
case VT_BYREF|VT_I4 : case VT_BYREF|VT_I4 :
@ -3240,7 +3240,7 @@ Scheme_Object *retvalVariantToSchemeObject (VARIANTARG *pVariantArg)
case VT_BYREF|VT_VARIANT : case VT_BYREF|VT_VARIANT :
return variantToSchemeObject (pVariantArg->pvarVal); return variantToSchemeObject (pVariantArg->pvarVal);
case VT_BYREF|VT_I1 : case VT_BYREF|VT_I1 :
return scheme_make_character (*pVariantArg->pcVal); return scheme_make_char (*pVariantArg->pcVal);
case VT_BYREF|VT_UI2 : case VT_BYREF|VT_UI2 :
return scheme_make_integer_value_from_unsigned (*pVariantArg->puiVal); return scheme_make_integer_value_from_unsigned (*pVariantArg->puiVal);
case VT_BYREF|VT_UI4 : case VT_BYREF|VT_UI4 :
@ -3266,12 +3266,12 @@ void unmarshalVariant (Scheme_Object *val, VARIANTARG *pVariantArg)
switch (pVariantArg->vt) { switch (pVariantArg->vt) {
case VT_I1 | VT_BYREF : case VT_I1 | VT_BYREF :
SCHEME_BOX_VAL (val) = scheme_make_character (*pVariantArg->pcVal); SCHEME_BOX_VAL (val) = scheme_make_char (*pVariantArg->pcVal);
scheme_gc_ptr_ok (pVariantArg->pcVal); scheme_gc_ptr_ok (pVariantArg->pcVal);
break; break;
case VT_UI1 | VT_BYREF : case VT_UI1 | VT_BYREF :
SCHEME_BOX_VAL (val) = scheme_make_character ((char) (*pVariantArg->pbVal)); SCHEME_BOX_VAL (val) = scheme_make_char ((char) (*pVariantArg->pbVal));
scheme_gc_ptr_ok (pVariantArg->pbVal); scheme_gc_ptr_ok (pVariantArg->pbVal);
break; break;
@ -5012,11 +5012,17 @@ void browserHwndMsgLoop (LPVOID p)
} }
} }
#define DLL_RELATIVE_PATH "../../../../../../../lib"
#include "../mzscheme/delayed.inc"
BOOL APIENTRY DllMain (HANDLE hModule, DWORD reason, LPVOID lpReserved) BOOL APIENTRY DllMain (HANDLE hModule, DWORD reason, LPVOID lpReserved)
{ {
if (reason == DLL_PROCESS_ATTACH) { if (reason == DLL_PROCESS_ATTACH) {
load_delayed_dll((HINSTANCE)hModule, "libmzgcxxxxxxx.dll");
load_delayed_dll((HINSTANCE)hModule, "libmzschxxxxxxx.dll");
hInstance = (HINSTANCE)hModule; hInstance = (HINSTANCE)hModule;
browserHwndMutex = CreateSemaphore (NULL, 1, 1, NULL); browserHwndMutex = CreateSemaphore (NULL, 1, 1, NULL);

View File

@ -898,3 +898,9 @@ extern unsigned long browserCount;
scheme_signal_error(buff); }; } while (0) scheme_signal_error(buff); }; } while (0)
/* This indirection lets us delayload libmzsch.dll: */
#define scheme_false (scheme_make_false())
#define scheme_true (scheme_make_true())
#define scheme_void (scheme_make_void())
#define scheme_null (scheme_make_null())

View File

@ -92,6 +92,9 @@ LPCTSTR FindOneOf(LPCTSTR p1, LPCTSTR p2)
return NULL; return NULL;
} }
#define DLL_RELATIVE_PATH "."
#include "../mzscheme/delayed.inc"
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
extern "C" int WINAPI _tWinMain(HINSTANCE hInstance, extern "C" int WINAPI _tWinMain(HINSTANCE hInstance,
@ -101,6 +104,9 @@ extern "C" int WINAPI _tWinMain(HINSTANCE hInstance,
lpCmdLine = GetCommandLine(); //this line necessary for _ATL_MIN_CRT lpCmdLine = GetCommandLine(); //this line necessary for _ATL_MIN_CRT
load_delayed_dll(hInstance, "libmzgcxxxxxxx.dll");
load_delayed_dll(hInstance, "libmzschxxxxxxx.dll");
#if _WIN32_WINNT >= 0x0400 & defined(_ATL_FREE_THREADED) #if _WIN32_WINNT >= 0x0400 & defined(_ATL_FREE_THREADED)
HRESULT hRes = CoInitializeEx(NULL, COINIT_MULTITHREADED); HRESULT hRes = CoInitializeEx(NULL, COINIT_MULTITHREADED);
#else #else

View File

@ -23,6 +23,9 @@ static void ErrorBox(char *s) {
::MessageBox(NULL,s,"MzCOM",MB_OK); ::MessageBox(NULL,s,"MzCOM",MB_OK);
} }
/* This indirection lets us delayload libmzsch.dll: */
#define scheme_false (scheme_make_false())
static Scheme_Object *_apply_thunk_catch_exceptions(Scheme_Object *f, static Scheme_Object *_apply_thunk_catch_exceptions(Scheme_Object *f,
Scheme_Object **exn) { Scheme_Object **exn) {
Scheme_Object *v; Scheme_Object *v;
@ -165,7 +168,7 @@ DWORD WINAPI evalLoop(LPVOID args) {
scheme_set_stack_base(NULL,1); scheme_set_stack_base(NULL,1);
setupSchemeEnv(); setupSchemeEnv();
scheme_exit = exitHandler; scheme_set_exit(exitHandler);
sleepFun = scheme_builtin_value("sleep"); sleepFun = scheme_builtin_value("sleep");
pTg = (THREAD_GLOBALS *)args; pTg = (THREAD_GLOBALS *)args;

View File

@ -35,86 +35,9 @@ static int _coldir_offset = 19; /* Skip permanent tag */
#ifdef DOS_FILE_SYSTEM #ifdef DOS_FILE_SYSTEM
# include <Windows.h> # include <Windows.h>
# ifdef MZ_PRECISE_GC
# define DLL_3M_SUFFIX "3m"
# else
# define DLL_3M_SUFFIX ""
# endif
static char *_dlldir = "dLl dIRECTORy:" /* <- this tag stays, so we can find it again */
"lib\0"
/* Pad with 512 bytes: */
"****************************************************************"
"****************************************************************"
"****************************************************************"
"****************************************************************"
"****************************************************************"
"****************************************************************"
"****************************************************************"
"****************************************************************";
static int _dlldir_offset = 14; /* Skip permanent tag */
# ifdef MZ_PRECISE_GC #define DLL_RELATIVE_PATH "lib"
START_XFORM_SKIP; #include "delayed.inc"
# endif
static void load_delayed_dll(char *lib)
{
/* Don't use the C library here! */
char *dlldir = _dlldir + _dlldir_offset;
if (dlldir[0] != '<') {
if ((dlldir[0] == '\\')
|| ((((dlldir[0] >= 'a') && (dlldir[0] <= 'z'))
|| ((dlldir[0] >= 'A') && (dlldir[0] <= 'Z')))
&& (dlldir[1] == ':'))) {
/* Absolute path */
} else {
/* Make it absolute, relative to this module */
char name[1024], *s;
int j, i;
GetModuleFileName(NULL, name, 1024);
name[1023] = 0;
s = (char *)GlobalAlloc(GMEM_FIXED, 2048);
for (i = 0; name[i]; i++) { }
--i;
while (i && (name[i] != '\\')) {
--i;
}
name[i+1] = 0;
for (i = 0; name[i]; i++) {
s[i] = name[i];
}
for (j = 0; dlldir[j]; j++, i++) {
s[i] = dlldir[j];
}
s[i] = 0;
dlldir = s;
_dlldir = s;
_dlldir_offset = 0;
}
{
char *t;
int j, i;
t = (char *)GlobalAlloc(GMEM_FIXED, 2048);
for (i = 0; dlldir[i]; i++) {
t[i] = dlldir[i];
}
if (t[i-1] != '\\')
t[i++] = '\\';
for (j = 0; lib[j]; j++, i++) {
t[i] = lib[j];
}
t[i] = 0;
if (!LoadLibrary(t)) {
MessageBox(NULL, t, "Failure: cannot load DLL", MB_OK);
ExitProcess(1);
}
}
}
}
extern extern
# ifdef __cplusplus # ifdef __cplusplus

81
src/mzscheme/delayed.inc Normal file
View File

@ -0,0 +1,81 @@
# ifdef MZ_PRECISE_GC
# define DLL_3M_SUFFIX "3m"
# else
# define DLL_3M_SUFFIX ""
# endif
static char *_dlldir = "dLl dIRECTORy:" /* <- this tag stays, so we can find it again */
DLL_RELATIVE_PATH "\0"
/* Pad with 512 bytes: */
"****************************************************************"
"****************************************************************"
"****************************************************************"
"****************************************************************"
"****************************************************************"
"****************************************************************"
"****************************************************************"
"****************************************************************";
static int _dlldir_offset = 14; /* Skip permanent tag */
# ifdef MZ_PRECISE_GC
START_XFORM_SKIP;
# endif
static void load_delayed_dll(HINSTANCE me, char *lib)
{
/* Don't use the C library here! */
char *dlldir = _dlldir + _dlldir_offset;
if (dlldir[0] != '<') {
if ((dlldir[0] == '\\')
|| ((((dlldir[0] >= 'a') && (dlldir[0] <= 'z'))
|| ((dlldir[0] >= 'A') && (dlldir[0] <= 'Z')))
&& (dlldir[1] == ':'))) {
/* Absolute path */
} else {
/* Make it absolute, relative to this module */
char name[1024], *s;
int j, i;
GetModuleFileName(me, name, 1024);
name[1023] = 0;
s = (char *)GlobalAlloc(GMEM_FIXED, 2048);
for (i = 0; name[i]; i++) { }
--i;
while (i && (name[i] != '\\')) {
--i;
}
name[i+1] = 0;
for (i = 0; name[i]; i++) {
s[i] = name[i];
}
for (j = 0; dlldir[j]; j++, i++) {
s[i] = dlldir[j];
}
s[i] = 0;
dlldir = s;
_dlldir = s;
_dlldir_offset = 0;
}
{
char *t;
int j, i;
t = (char *)GlobalAlloc(GMEM_FIXED, 2048);
for (i = 0; dlldir[i]; i++) {
t[i] = dlldir[i];
}
if (t[i-1] != '\\')
t[i++] = '\\';
for (j = 0; lib[j]; j++, i++) {
t[i] = lib[j];
}
t[i] = 0;
if (!LoadLibrary(t)) {
MessageBox(NULL, t, "Failure: cannot load DLL", MB_OK);
ExitProcess(1);
}
}
}
}

View File

@ -1534,7 +1534,9 @@ MZ_EXTERN Scheme_Thread *scheme_current_thread;
MZ_EXTERN Scheme_Thread *scheme_first_thread; MZ_EXTERN Scheme_Thread *scheme_first_thread;
/* Set these global hooks (optionally): */ /* Set these global hooks (optionally): */
MZ_EXTERN void (*scheme_exit)(int v); typedef void (*Scheme_Exit_Proc)(int v);
MZ_EXTERN Scheme_Exit_Proc scheme_exit;
MZ_EXTERN void scheme_set_exit(Scheme_Exit_Proc p);
typedef void (*scheme_console_printf_t)(char *str, ...); typedef void (*scheme_console_printf_t)(char *str, ...);
MZ_EXTERN scheme_console_printf_t scheme_console_printf; MZ_EXTERN scheme_console_printf_t scheme_console_printf;
MZ_EXTERN scheme_console_printf_t scheme_get_console_printf(); MZ_EXTERN scheme_console_printf_t scheme_get_console_printf();

View File

@ -239,9 +239,9 @@ int MAIN(int argc, MAIN_char **MAIN_argv)
#ifdef DOS_FILE_SYSTEM #ifdef DOS_FILE_SYSTEM
/* Order matters: load dependencies first */ /* Order matters: load dependencies first */
# ifndef MZ_PRECISE_GC # ifndef MZ_PRECISE_GC
load_delayed_dll("libmzgcxxxxxxx.dll"); load_delayed_dll(NULL, "libmzgcxxxxxxx.dll");
# endif # endif
load_delayed_dll("libmzsch" DLL_3M_SUFFIX "xxxxxxx.dll"); load_delayed_dll(NULL, "libmzsch" DLL_3M_SUFFIX "xxxxxxx.dll");
record_dll_path(); record_dll_path();
#endif #endif

View File

@ -36,7 +36,8 @@ scheme_console_printf_t scheme_console_printf;
scheme_console_printf_t scheme_get_console_printf() { return scheme_console_printf; } scheme_console_printf_t scheme_get_console_printf() { return scheme_console_printf; }
void (*scheme_console_output)(char *str, long len); void (*scheme_console_output)(char *str, long len);
void (*scheme_exit)(int v); Scheme_Exit_Proc scheme_exit;
void scheme_set_exit(Scheme_Exit_Proc p) { scheme_exit = p; }
#ifdef MEMORY_COUNTING_ON #ifdef MEMORY_COUNTING_ON
long scheme_misc_count; long scheme_misc_count;

View File

@ -35,7 +35,8 @@
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386" AdditionalOptions="/MACHINE:I386 /DELAYLOAD:libmzschxxxxxxx.dll /DELAYLOAD:libmzgcxxxxxxx.dll"
AdditionalDependencies="delayimp.lib"
OutputFile="..\..\..\$(ProjectName).exe" OutputFile="..\..\..\$(ProjectName).exe"
ProgramDatabaseFile="..\..\..\$(ProjectName).pdb" ProgramDatabaseFile="..\..\..\$(ProjectName).pdb"
SuppressStartupBanner="TRUE" SuppressStartupBanner="TRUE"
@ -89,7 +90,8 @@
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386" AdditionalOptions="/MACHINE:I386 /DELAYLOAD:libmzschxxxxxxx.dll /DELAYLOAD:libmzgcxxxxxxx.dll"
AdditionalDependencies="delayimp.lib"
OutputFile="..\..\..\$(ProjectName).exe" OutputFile="..\..\..\$(ProjectName).exe"
ProgramDatabaseFile="..\..\..\$(ProjectName).pdb" ProgramDatabaseFile="..\..\..\$(ProjectName).pdb"
LinkIncremental="1" LinkIncremental="1"

View File

@ -38,7 +38,8 @@
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="htmlhelp.lib libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj mysc\Debug\mysc.lib" AdditionalOptions="/MACHINE:I386 /DELAYLOAD:libmzschxxxxxxx.dll /DELAYLOAD:libmzgcxxxxxxx.dll"
AdditionalDependencies="htmlhelp.lib libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj mysc\Debug\mysc.lib delayimp.lib"
OutputFile="..\..\..\collects\mysterx\private\compiled\native\win32\i386\mxmain.dll" OutputFile="..\..\..\collects\mysterx\private\compiled\native\win32\i386\mxmain.dll"
LinkIncremental="0" LinkIncremental="0"
SuppressStartupBanner="TRUE" SuppressStartupBanner="TRUE"
@ -102,7 +103,8 @@
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="htmlhelp.lib libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mscoree.lib mzdyn.obj mysc\Debug\mysc.lib" AdditionalOptions="/MACHINE:I386 /DELAYLOAD:libmzschxxxxxxx.dll /DELAYLOAD:libmzgcxxxxxxx.dll"
AdditionalDependencies="htmlhelp.lib libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mscoree.lib mzdyn.obj mysc\Debug\mysc.lib delayimp.lib"
OutputFile="..\..\..\collects\mysterx\private\compiled\native\win32\i386\mxmain.dll" OutputFile="..\..\..\collects\mysterx\private\compiled\native\win32\i386\mxmain.dll"
LinkIncremental="2" LinkIncremental="2"
SuppressStartupBanner="TRUE" SuppressStartupBanner="TRUE"
@ -171,7 +173,8 @@
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="htmlhelp.lib libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj mysc\Release\mysc.lib" AdditionalOptions="/MACHINE:I386 /DELAYLOAD:libmzschxxxxxxx.dll /DELAYLOAD:libmzgcxxxxxxx.dll"
AdditionalDependencies="htmlhelp.lib libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj mysc\Release\mysc.lib delayimp.lib"
OutputFile="..\..\..\collects\mysterx\private\compiled\native\win32\i386\mxmain.dll" OutputFile="..\..\..\collects\mysterx\private\compiled\native\win32\i386\mxmain.dll"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="TRUE" SuppressStartupBanner="TRUE"

View File

@ -38,13 +38,13 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj" AdditionalDependencies="libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj"
OutputFile="..\..\..\..\$(ProjectName).dll" OutputFile="..\..\..\..\lib\$(ProjectName).dll"
SuppressStartupBanner="TRUE" SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\..\..\lib\msvc" AdditionalLibraryDirectories="..\..\..\..\lib\msvc"
IgnoreDefaultLibraryNames="LIBCMT" IgnoreDefaultLibraryNames="LIBCMT"
ModuleDefinitionFile="..\..\..\mysterx\myspage\$(ProjectName).def" ModuleDefinitionFile="..\..\..\mysterx\myspage\$(ProjectName).def"
GenerateDebugInformation="TRUE" GenerateDebugInformation="TRUE"
ProgramDatabaseFile="..\..\..\..\$(ProjectName).pdb" ProgramDatabaseFile="..\..\..\..\lib\$(ProjectName).pdb"
SubSystem="2" SubSystem="2"
ImportLibrary="$(OutDir)\$(ProjectName).lib" ImportLibrary="$(OutDir)\$(ProjectName).lib"
TargetMachine="1"/> TargetMachine="1"/>
@ -60,7 +60,7 @@
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
Description="Register $(ProjectName).dll" Description="Register $(ProjectName).dll"
CommandLine="REGSVR32 /s ..\..\..\..\$(ProjectName).dll"/> CommandLine="REGSVR32 /s ..\..\..\..\lib\$(ProjectName).dll"/>
<Tool <Tool
Name="VCPreBuildEventTool"/> Name="VCPreBuildEventTool"/>
<Tool <Tool
@ -107,14 +107,14 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj" AdditionalDependencies="libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj"
OutputFile="..\..\..\..\$(ProjectName).dll" OutputFile="..\..\..\..\lib\$(ProjectName).dll"
LinkIncremental="2" LinkIncremental="2"
SuppressStartupBanner="TRUE" SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\..\..\lib\msvc" AdditionalLibraryDirectories="..\..\..\..\lib\msvc"
IgnoreDefaultLibraryNames="LIBCMT" IgnoreDefaultLibraryNames="LIBCMT"
ModuleDefinitionFile="..\..\..\mysterx\myspage\$(ProjectName).def" ModuleDefinitionFile="..\..\..\mysterx\myspage\$(ProjectName).def"
GenerateDebugInformation="TRUE" GenerateDebugInformation="TRUE"
ProgramDatabaseFile="..\..\..\..\$(ProjectName).pdb" ProgramDatabaseFile="..\..\..\..\lib\$(ProjectName).pdb"
SubSystem="2" SubSystem="2"
ImportLibrary="$(OutDir)\$(InputName).lib" ImportLibrary="$(OutDir)\$(InputName).lib"
TargetMachine="1"/> TargetMachine="1"/>
@ -130,7 +130,7 @@
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
Description="Register $(ProjectName).dll" Description="Register $(ProjectName).dll"
CommandLine="REGSVR32 /s ..\..\..\..\$(ProjectName).dll"/> CommandLine="REGSVR32 /s ..\..\..\..\lib\$(ProjectName).dll"/>
<Tool <Tool
Name="VCPreBuildEventTool"/> Name="VCPreBuildEventTool"/>
<Tool <Tool
@ -182,7 +182,7 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj" AdditionalDependencies="libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj"
OutputFile="..\..\..\..\$(ProjectName).dll" OutputFile="..\..\..\..\lib\$(ProjectName).dll"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="TRUE" SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\..\..\lib\msvc" AdditionalLibraryDirectories="..\..\..\..\lib\msvc"
@ -205,7 +205,7 @@
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
Description="Register $(ProjectName).dll" Description="Register $(ProjectName).dll"
CommandLine="REGSVR32 /s ..\..\..\..\$(ProjectName).dll"/> CommandLine="REGSVR32 /s ..\..\..\..\lib\$(ProjectName).dll"/>
<Tool <Tool
Name="VCPreBuildEventTool"/> Name="VCPreBuildEventTool"/>
<Tool <Tool

View File

@ -37,15 +37,16 @@
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj ..\mysc\Debug\mysc.lib" AdditionalOptions="/MACHINE:I386 /DELAYLOAD:libmzschxxxxxxx.dll /DELAYLOAD:libmzgcxxxxxxx.dll"
OutputFile="..\..\..\..\$(ProjectName).dll" AdditionalDependencies="libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj ..\mysc\Debug\mysc.lib delayimp.lib"
OutputFile="..\..\..\..\lib\$(ProjectName).dll"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="TRUE" SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\..\..\lib\msvc" AdditionalLibraryDirectories="..\..\..\..\lib\msvc"
IgnoreDefaultLibraryNames="LIBCMT.lib;LIBCMTD.lib" IgnoreDefaultLibraryNames="LIBCMT.lib;LIBCMTD.lib"
ModuleDefinitionFile="..\..\..\mysterx\myssink\$(ProjectName).def" ModuleDefinitionFile="..\..\..\mysterx\myssink\$(ProjectName).def"
GenerateDebugInformation="TRUE" GenerateDebugInformation="TRUE"
ProgramDatabaseFile="..\..\..\..\$(ProjectName).pdb" ProgramDatabaseFile="..\..\..\..\lib\$(ProjectName).pdb"
SubSystem="2" SubSystem="2"
ImportLibrary="$(OutDir)\$(ProjectName).lib" ImportLibrary="$(OutDir)\$(ProjectName).lib"
TargetMachine="1"/> TargetMachine="1"/>
@ -60,7 +61,7 @@
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
Description="Register $(ProjectName).dll" Description="Register $(ProjectName).dll"
CommandLine="REGSVR32 /s ..\..\..\..\$(ProjectName).dll"/> CommandLine="REGSVR32 /s ..\..\..\..\lib\$(ProjectName).dll"/>
<Tool <Tool
Name="VCPreBuildEventTool"/> Name="VCPreBuildEventTool"/>
<Tool <Tool
@ -105,15 +106,16 @@
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj ..\mysc\Debug\mysc.lib" AdditionalOptions="/MACHINE:I386 /DELAYLOAD:libmzschxxxxxxx.dll /DELAYLOAD:libmzgcxxxxxxx.dll"
OutputFile="..\..\..\..\$(ProjectName).dll" AdditionalDependencies="libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj ..\mysc\Debug\mysc.lib delayimp.lib"
OutputFile="..\..\..\..\lib\$(ProjectName).dll"
LinkIncremental="2" LinkIncremental="2"
SuppressStartupBanner="TRUE" SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\..\..\lib\msvc" AdditionalLibraryDirectories="..\..\..\..\lib\msvc"
IgnoreDefaultLibraryNames="LIBCMT.lib;LIBCMTD.lib" IgnoreDefaultLibraryNames="LIBCMT.lib;LIBCMTD.lib"
ModuleDefinitionFile="..\..\..\mysterx\myssink\$(ProjectName).def" ModuleDefinitionFile="..\..\..\mysterx\myssink\$(ProjectName).def"
GenerateDebugInformation="TRUE" GenerateDebugInformation="TRUE"
ProgramDatabaseFile="..\..\..\..\$(ProjectName).pdb" ProgramDatabaseFile="..\..\..\..\lib\$(ProjectName).pdb"
SubSystem="2" SubSystem="2"
ImportLibrary="$(OutDir)\$(ProjectName).lib" ImportLibrary="$(OutDir)\$(ProjectName).lib"
TargetMachine="1"/> TargetMachine="1"/>
@ -128,7 +130,7 @@
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
Description="Register $(ProjectName).dll" Description="Register $(ProjectName).dll"
CommandLine="REGSVR32 /s ..\..\..\..\$(ProjectName).dll"/> CommandLine="REGSVR32 /s ..\..\..\..\lib\$(ProjectName).dll"/>
<Tool <Tool
Name="VCPreBuildEventTool"/> Name="VCPreBuildEventTool"/>
<Tool <Tool
@ -179,8 +181,9 @@
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj ..\mysc\Release\mysc.lib" AdditionalOptions="/MACHINE:I386 /DELAYLOAD:libmzschxxxxxxx.dll /DELAYLOAD:libmzgcxxxxxxx.dll"
OutputFile="..\..\..\..\$(ProjectName).dll" AdditionalDependencies="libmzgcxxxxxxx.lib libmzschxxxxxxx.lib mzdyn.obj ..\mysc\Release\mysc.lib delayimp.lib"
OutputFile="..\..\..\..\lib\$(ProjectName).dll"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="TRUE" SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\..\..\lib\msvc" AdditionalLibraryDirectories="..\..\..\..\lib\msvc"
@ -203,7 +206,7 @@
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
Description="Register $(ProjectName).dll" Description="Register $(ProjectName).dll"
CommandLine="REGSVR32 /s ..\..\..\..\$(ProjectName).dll"/> CommandLine="REGSVR32 /s ..\..\..\..\lib\$(ProjectName).dll"/>
<Tool <Tool
Name="VCPreBuildEventTool"/> Name="VCPreBuildEventTool"/>
<Tool <Tool

View File

@ -35,7 +35,8 @@
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386" AdditionalOptions="/MACHINE:I386 /DELAYLOAD:libmzschxxxxxxx.dll /DELAYLOAD:libmzgcxxxxxxx.dll"
AdditionalDependencies="delayimp.lib"
OutputFile="..\..\..\$(ProjectName).exe" OutputFile="..\..\..\$(ProjectName).exe"
SuppressStartupBanner="TRUE" SuppressStartupBanner="TRUE"
GenerateDebugInformation="TRUE" GenerateDebugInformation="TRUE"
@ -95,7 +96,8 @@
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386" AdditionalOptions="/MACHINE:I386 /DELAYLOAD:libmzschxxxxxxx.dll /DELAYLOAD:libmzgcxxxxxxx.dll"
AdditionalDependencies="delayimp.lib"
OutputFile="..\..\..\$(ProjectName).exe" OutputFile="..\..\..\$(ProjectName).exe"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="TRUE" SuppressStartupBanner="TRUE"