User:Gzarkadas/SandBox
From Avisynth
Contents |
[edit] BEGIN SANDBOX
[edit] plans for avisynth syntax (basically, is finished)
Filters_with_multiple_input_clips : This is probably better to go somewhere in Internal filters; it is not a requirement of the syntax.
- Language elements - Fundamental types, functions, arguments, comments, line continuation, etc.
[edit] Building Avisynth 2.6 with VC++ 2005
[edit] Build with Statically Linked CRT for debugging with controlling C++ app
Problem: MSVCRTD.dll is not available in free version of VC++ 2005. Thus debugging a C++ app that loads avisynth.dll and uses the exposed api to make direct calls to ScriptEnvironment methods is not possible if avisynth is compiled with the default settings (they require the debug CRT dll).
Solution: Link CRT statically when building the avisynth project (the same must be done when building the controlling C++ app). The following changes must be done to the default project settings:
- C/C++
- Preprocessor
- Preprocessor Definitions: Delete (at start) IL_DEBUG; (DevIL debug loads msvcrtd.dll, thus we must force loading the non-debug version; this means symbols are not available for DevIL).
- Code Generation
- Runtime Library: Make it Multi-threaded Debug (/MTd)
- Preprocessor
- Linker
- Input
- Additional Dependencies: Substitute ../distrib/lib/debug/devil-d.lib with ../distrib/lib/devil.lib (DevIL debug loads msvcrtd.dll, thus we must force loading the non-debug version; this means symbols are not available for DevIL).
- Ignore Specific Library: Add (at the end) ;LIBCMTD.lib (to avoid link errors).
- Advanced
- Entry Point: DllMain (this may not be needed; will check later)
- Command Line
- Additional Options: Add /DLL (else linker can't figure out a dll and not an exe is wanted)
- Input
You may also want to add /D "_CRT_SECURE_NO_DEPRECATE" in C/C++|Command Line|Additional options to eliminate some warnings from the output.
Important Note: If you don't want the debug version of avisynth.dll to override the existent working version in the system32 directory (in this case you will certainly don't want to), then go to project settings, at Build Events|Post-Build Event|Excluded From Build and change it to Yes.

