Presentation is loading. Please wait.

Presentation is loading. Please wait.

Edition 7.0 The DLL. Introduction •A look at what’s new in the Dll •A brief glimpse at “Dll Hell” and how you might minimize your time there •A look at.

Similar presentations


Presentation on theme: "Edition 7.0 The DLL. Introduction •A look at what’s new in the Dll •A brief glimpse at “Dll Hell” and how you might minimize your time there •A look at."— Presentation transcript:

1 Edition 7.0 The DLL

2 Introduction •A look at what’s new in the Dll •A brief glimpse at “Dll Hell” and how you might minimize your time there •A look at some development environments •A look at some applications •How you get your own copy of the Dll •What the future holds…

3 What’s New •The Dll now uses the same code as the console version, so the results are identical. •There are new species in the SMC and NWO version. •Data supporting the growth equations in the SWO version includes old-growth stands and stands with more hardwoods. •Lahey FORTRAN compiler (version 9.5) used to generate the files

4 Why Dll ? •Link free solution •Simplicity, clarity, and completeness •Larger problems can be considered •Larger spatial regions can be considered •Consistent platform

5 Organization •Three separate files –ORGEDIT: (prepare) data imputation –ORGRUN: (execute) project tree lists –ORGVOL: (volcal) Estimate volume •They use Microsoft PE/COFF (Portable Executable Common Object File Format) •They use Microsoft Visual Basic name decorating

6 Dll “Hell” •DLL Hell is an official Microsoft term gleaned from their developer network (they would know, they invented it!) •COFF (originally from DEC) has been modified by Microsoft for WinNT 3 and it continues to change (PE/COFF) –Routines prior to Visual “stuff” 6 will need to “convert” the ‘lib’ •Calling routines ‘decorate’ function and subroutine names in called Dll’s –Familiarize yourself with your environments calling protocols –Use “Alias” to convert names. –Use standard call •Microsoft compliant lib’s are included but with the infinitude of compilers out there you may need another

7 More Hell •Intel defined an object file standard ‘OMF’ Object Model format. –If your environment uses it you will need to convert coff2omf should work –unless it is old then you will need to use the utility “convert” –Borland’s Builder and Delphi also use OMF

8 Even More Hell •Name decoration: –Borland utility TDUMP will give the names inside of the DLL –Dumpbin is Microsoft’s solution –More feature rich programs: PEBrowse, dumpbinGUI, etc. •After all of this, your compiler will use its own decoration protocol to call the Dll –Read the instructions (really) •MS Visual Basic seems to have a benign protocol so we chose to use that one

9 And Even More Hell •Security? There isn’t any! –We don’t include viruses, really! –We don’t format hard drives •VB solves some problems but causes others –Relatively minor things will break your code •VB blames almost every problem on calling convention •It is nearly always lying!

10 “Bad Dll Calling Convention” •Get used to seeing this! •From this you might infer that there is something wrong with your Dll –There isn’t, its your application •It means that the stack is confused •Why? –Optimization for speed will put memory on 4 byte boundaries, sometimes… –Change in compiler conventions •No optimization selected in producing the Dll

11 Tested Environments •Lahey FORTRAN and C –Version 5 •Microsoft Visual Studio –.NET •Microsoft Office applications –Office 2003 •Borland’s Builder –Version 5 –Version 6 •Intel FORTRAN

12 A few forestry details •No management is included, but the effects are modeled –The user is responsible for filling the management arrays –Fertilization •Intensity (pounds of nitrogen) •Timing (both prior and post) •Maximum of 5 fertilizer applications –Thinning •Intensity (basal area removed) •Timing (both prior and post) •Maximum of 5 thins

13 Applications •A simple FORTRAN application •Spreadsheet •Access Database (?) •R (?)

14 FORTRAN

15 •Import function with DLL_IMPORT •Get the name right with Alias –CDEC$ ATTRIBUTES, ALIAS:'_EXECUTE' :: EXECUTE •Alias helps in other environments

16 The dreaded Office •This environment is very complex •This environment is constantly changing •Don’t go here! It is evil! The dark side will draw you in and then it will crush you! •Hire a psychologist, if you don’t get over your desire then hire a programmer •BIG ASTERIX (*) –What you are about to see works in Office 2003 and probably no where else

17 EXCEL

18 •This design borrowed from Jeff Hamann •But the mistakes are courtesy of me •Jeff is much too smart to this •Use ‘R’ it is the future •Or even better just do it in FORTRAN

19 EXCEL

20

21

22

23 Excel

24 The future •Seeking testers and example generators •Examples will be posted to the ORGANON web site •FORSight Resources is building a replacement for the console version •Additional utilities supporting the program –Wrapper for the GMUG tree structure –Management routine •What of.NET?

25 How to get a copy •Send a request to: –ORGANON@OregonState.eduORGANON@OregonState.edu –Mark.Hanus@FORSightResources.comMark.Hanus@FORSightResources.com

26 The End Questions?

27 Well I brought one… •On average, what fraction of a square n times 2r on a side is covered by n-squared equal sized circles, of radius r, randomly distributed across it? The origin of all circles must fall in the square.


Download ppt "Edition 7.0 The DLL. Introduction •A look at what’s new in the Dll •A brief glimpse at “Dll Hell” and how you might minimize your time there •A look at."

Similar presentations


Ads by Google