📄 changes.txt
字号:
- Scroll now follows output flow (ugly but still better than before).
- Corrected internal APIs engine.
- Updated vblib.h with internal constants.
- Added compilation constants: Win16 and Win32 in Miniwin.h.
- vbOK reported <Unknown entity> (was vbOk).
- TRUE constant changed to -1 (was 1).
- Kill instruction now accepts wildcards (like in VB).
- Added missing builtin constants.
- Fixed a bug in decimal numbers representation.
- Left()/right() slightly speeded up.
- Parser doesn't stop line checking after having encountered
an unknown entity (making faults locations easier).
- Builtin constants are no longer mapped to system's ones.
- Better handling of labels in Pass 1.
- Better recognition of hexadecimal and decimal# numbers.
- Now allow comments after if statements.
[SRC] - Cleaned up ModLoParser.bas.
- Cleaned up ModhiParser.bar too
(But still it need a nearly complete rewrite).
- Added 2 procedures to add insternal required constants/user types
the converter is using.
- GetFunctionParameter core function renamed to Parse.
- Created function SearchUserType() which retrieve the real
type of a referenced user type variable.
- Gathered more code generation in ModOutput.bas.
- VAR_VARIANT renamed to VAR_ANY for clarity purposes.
- Added some more comments.
- GetExpressionHunt()/GetExpressionDeclare()
won't be fooled so easily by strings containing searched keyword.
- Removed PerformVariableConversion() and renamed ConvertEntity()
(Also removed some useless code).
- Added AddBuiltinEnum() to build enumerations of constants.
- Added ConvertLongType() to handle VB->C numbers conversions.
----------------------------------------------------------------------------------
v0.4.7 (06/07/2002):
[NEW] - Added handling for STATIC predicat
(does nothing more than pass it btw).
- Added a primitive GUI (still better than the console).
Notice that it uses a .ini file (in application directory)
to store the preferences.
- Use of static for local variables is now optional.
- 'NO CONVERSION' modules header can be turned on/off.
- Double symbols checking is now optional too.
[FIX] - Fixed a problem in vbasmlib (couldn't assemble it).
- Fixed a bug in instr() function: search for chr(0) will
try nothing but report string's length-start position.
----------------------------------------------------------------------------------
v0.3.44 (25/06/2002):
[NOTE] There's still a huge amount of work left
but i've added/fixed/improved a lot of things since the last version.
Changed versioning system:
First number is major version
(0 until converter is complete).
Second number is major release revision.
Third number is amount of changes in release.
[NEW] - Added handling for enumerations (stored in constants file)
It handles automatic format (without assignations)
and user defined one (with assignations).
Decimal numbers are not handled (vb rounds them anyway).
Enumeration values are modified (. becomes _) to avoid
duplicate symbols so beware.
Example:
Public Enum myenum1
enum1 = 4
enum2
End Enum
Public Enum myenum2
enum2
End Enum
Will be generated as:
enum myenum1 {
myenum1_enum1=4,
myenum1_enum2,
};
enum myenum2 {
myenum2_enum2,
};
(More readable anyway).
"myenum1.enum1" and "enum1" accessing formats are allowed.
- Str$() is now handled (forgot this one last time).
- Added Beep instruction.
- Should be able to handle multi-dimensionals arrays
(No UBound()/LBound() available).
- Added a first version of dynamic arrays handling
(arrays with variables dimension).
It can handle:
Read/write
Redim
Redim Preserve
Erase
UBound()
LBound() (Always returns 0)
It cannot handle multiple dimensions for this type of arrays
and cannot handle user defined types also dynamic arrays can't
be locals.
Actually Redims are really slow
(arrays are not allocated as a single block as they should be).
- Generated project now contains a debug configuration (Could be useful).
- Now recognizes double numbers as simple type.
- Added power operator (^) (done with operator overload)
Notice that you can encounter operators precedence problems with it:
1 ^ 2 + 3
VC will generate an error that can be resolved by using this form:
(1 ^ 2) + 3
- Added Array(0 To x) declarations format now recognized.
- Strings are now handled with pointers (should be much faster).
- Improved code generation.
- Disabled warning 4805 (variable against constants compares).
- Added an example to test some arrays manipulations.
- A WorkSpace file is now generated.
- Doesn't check for duplicate symbols anymore, code is still present
(might becomes an option in the forthcoming graphical interface).
- Speeded up pass 2 conversion by exploding
constants/variables/functions arrays into 27 (A->Z+others) sub-arrays
(Should reduce conversion time by ~2).
- Added support for mid() as instruction (eg. mid(MyString,1,1)="A")
(Also recognized as mid$()).
- Changed project linking parameters (DON'T MODIFY THIS) to allow
modifications of literal strings, Linker will produces 2 warnings
messages to be ignored, notice also that produced executables
will be slightly shorter due to PE sections gathering.
- Now reports some important warnings while converting.
- Added NOT operator (i forgot this one).
- CASE IS format recognized.
- Added ON xxx GOTO xxx handling
(ON ERROR GOTO and ON ERROR RESUME are simply ignored).
- Related texts of warnings/errors are now displayed.
- Dlls references are now gathered into project file generation.
- .RES file is now included in destination project.
- Added handling for optional arguments
(Only accepts simple arguments).
[FIX] - Constants strings are now handled with correct type
(CONST_STRING was pointing to VAR_INTEGER).
- Now frees last garbage string in WinMain footer.
- Sourcecode cleaned up a bit:
More Windows/VC dependant code generation located in ModOutput.bas,
added comments, re-organised some lousy parts and removed obsolete code.
- Improved arrays handling: it should be able to recognizes
expressions as indexes and size specifiers.
- Variables declared outside procedures with Dim were also written
in current module.
- Corrected a bug in expressions parsing,
some closing brackets were missed.
- Now tries to avoid more types conversions and let VC do the work for us.
- Mangled arguments in functions when using an array as parameter.
- Temporary variables initializations should be better
(memset() function is only used when needed).
- Corrected a confusion between variables/functions and API arguments.
- Cleaned up brackets recognition system.
- Fixed a problem with labels.
- End of line comments are removed.
- Fixed a problem with operators replacements inside compares.
- Variables handling inside expressions rewritten (faster and cleaner).
- User types handling rewritten
(should be able to recognize xxx.xxx.xxx... formats with or without
arrays indexes references) notice that there's still conversions
problems with this.
- Removed address references for user types variables passed as arguments.
- Improved files handling:
should be able to open modules from project located in other directories
and it close all opened files correctly.
- Better handling for functions with user types as return values.
- Corrected VarPtr() conversion.
----------------------------------------------------------------------------------
v0.02 (18/06/2002):
[NEW] - Added code generation and handling for:
App.Path
App.hInstance
App.ThreadID
Main() now contains initvbtypes()
and required API declarations:
GetModuleFileName()
GetModuleHandle()
GetCurrentThreadId()
all are located in main cpp file.
Also added an API prototypes check
to avoid duplicate declarations.
- Added some functions in MiniWin.h file
(You'll need to re-install this file).
- Added handling for Environ()
API functions added:
GetEnvironmentVariable()
- Added some constants:
vbDatabaseCompare vbHide
vbMaximizedFocus vbMinimizedFocus
vbMinimizedNoFocus vbNormalFocus
vbNormalNoFocus vbCalGreg
vbCalHijri VbGet
VbLet VbMethod
VbSet vbGeneralDate
vbLongDate vbLongTime
vbShortDate vbShortTime
vbFriday vbMonday
vbSaturday vbSunday
vbThursday vbTuesday
vbUseSystemDayOfWeek vbWednesday
vbAlias vbArchive
vbDirectory vbHidden
vbNormal vbReadOnly
vbSystem vbVolume
vbFirstFourDays vbFirstFullWeek
vbFirstJan1 vbUseSystem
vbIMEAlphaDbl vbIMEAlphaSng
vbIMEDisable vbIMEHiragana
vbIMEKatakanaDbl vbIMEKatakanaSng
vbIMEModeAlpha vbIMEModeAlphaFull
vbIMEModeDisable vbIMEModeHangul
vbIMEModeHangulFull vbIMEModeHiragana
vbIMEModeKatakana vbIMEModeKatakanaHalf
vbIMEModeNoControl vbIMEModeOff
vbIMEModeOn vbIMENoOp
vbIMEOff vbIMEOn
vbFromUnicode vbHiragana
vbKatakana vbLowerCase
vbNarrow vbProperCase
vbUnicode vbUpperCase
vbWide vbFalse
vbTrue vbUseDefault
vbArray vbBoolean
vbByte vbCurrency
vbDataObject vbDate
vbDecimal vbDouble
vbEmpty vbError
vbInteger vbLong
vbNull vbObject
vbSingle vbString
vbUserDefinedType vbVariant
- Added recognition for functions:
Chr$()
LCase$()
UCase$()
Left$()
Right$()
Mid$()
Space$()
String$()
Trim$()
Replace$()
Hex$()
Environ$()
Command$()
- Added functions LTrim()/RTrim()
(LTrim$()/RTrim$() recognized too).
- Added function StrReverse()
(StrReverse$() recognized too).
- Added function QBColor()
(predefined colors are located in MiniWin.h).
[FIX] - Removed dots from temporary variables
(caused obvious compiler errors).
- Improved local variables initializations:
byte/integer/long/boolean/double
won't be initialised with memset() anymore.
- Converted "Command" variable into a function.
- Fixed hex() function: number returned in uppercase.
- Fixed str() function (wasn't recognized).
----------------------------------------------------------------------------------
v0.01 (xx/xx/xxxx):
(Unreleased version ?).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -