It is getting pretty hard to compile with C#, as C# doesn't have as good support with SWIG. There are two problems here - one is that some of the new code that I added for Python (which is currently the principal target) doesn't work on C#, as SWIG for C# doesn't handle some of the templates - I'll try to fix that (by #ifdef'ing out the code which doesn't work for C#...)
The other problem is that SWIG wasn't generating code which wouldn't compile without modifying. I think I did get some code compiling under C# last time some one asked about it, but it wasn't easy. As to the GC problem, at least on python you set filterManager.thisown = False, and this means it won't be GC'ed. Not sure if SWIG has the same thing for C#. God Bless, Ben ------------------------------------------------------------------------------------------- Multitudes, multitudes, in the valley of decision! For the day of the LORD is near in the valley of decision. Giôên 3:14 (ESV) On 22/08/2009, Wade Balzer <wbal...@newjerusalem.org> wrote: > > That was the biggest problem I had was trying to regenerate the wrapper. > > > > I compile all the latest updates successfully in VS C++ 2008, but I can’t > get SWIG to regenerate the wrapper for C#. So I have been using an older > version of the compiled binary that is buggy. > > > > The latest version of SWIG does have fixes and better handling, but I can’t > get it to compile. Ugh. Apparently, the latest updates to the header > library were targeted to a PHP target leaving a C# target broken. :-( > > > > So… because I couldn’t get it working, I started to create my own modules > from an OSIS source. I was going to parse out the modules and place them on > a SQL Server, but my tests have been slow searching through an unindexed > field. (2 minutes to search for a single word using a CLR Regex function. > Yuck.) At least with a map of an OSIS document, I can locate each verse > and traverse all the verses in the bible in under 5 seconds. If I create a > binary index, I can return all occurrences of God in less than a second. > > > > I think I still would rather use the SWORD Library because it is faster on > searches, and has more people involved in updating the core library. > > > > My only other option was to create a native C# Sword Library, but I don’t > have the time or energy to recreate the wheel. > > > > If anyone can help by taking the latest code base, and recompile a working > SwigSword.dll targeted for C# and accompanying dll’s, that would be very > helpful. Let me know how you got it working would cool too. > > > > Thanks, > > > > Wade > > > > *From:* Jeff Becker [mailto:jbec...@fiveviews.com] > *Sent:* Friday, August 21, 2009 11:11 AM > *To:* SWORD Developers' Collaboration Forum > *Subject:* Re: [sword-devel] .Net Exception Odd behavior... > > > > It could be the same problem I ran into some time back. The SwigSword code > destroys some pointers then tries to use them again. Under .Net 1.0 it > wasn't a problem because the error was ignored. Under .Net 2.0 it raises an > error and crashes the calling application. In my case it was MS Word since > I was working on an Add-In but it would probably crash anything calling the > dll. > > > > I'm hoping that Swig has fixed the .Net 2.0 pointer issue. If that's the > case then the easiest approach might be to regenerate the wrapper. I'm > guessing that the problem isn't in just one property or method since the > code relatively consistent throughout. > > -----Original Message----- > *From:* Wade Balzer [mailto:wbal...@newjerusalem.org] > *Sent:* Friday, July 31, 2009 11:42 AM > *To:* sword-devel@crosswire.org > *Subject:* [sword-devel] .Net Exception Odd behavior... > > I am working on a Bible project in C# for the web. I am using the > SwigSword.dll wrapper. > > > > When I load the manager using the default location for the modules as > provided by the SWORD_PATH environment, it words fine and the debugger exits > without a problem. > > > > filterManager = new MarkupFilterMgr((char)Sword.FMT_OSIS, (char)Sword > .ENC_HTML); > > manager = new SWMgr( filterManager); > > > > GC.SuppressFinalize(filterManager); > > > > However since this will be a web environment, I need to directly point to > the Module locations without directly pointing to my local %SWORD_PATH% > variable. > > > > When I set the location of the config, and manually set the location of the > module path, everything seems to work fine until I exit the debugger. It > CRASHES. > > > > SWConfig config = new SWConfig(BaseModDir + "mods.d\\global.conf"); > > SWConfig sysconfig = null; > > > > filterManager = new MarkupFilterMgr((char)Sword.FMT_OSIS, (char)Sword > .ENC_HTML); > > //manager = new SWMgr( filterManager); > > manager = new SWMgr(config, sysconfig, false, filterManager); > > manager.configPath = BaseModDir + "mods.d\\"; > > manager.prefixPath = BaseModDir; > > manager.Load(); > > > > manager.augmentModules(BaseModDir); > > > > GC.SuppressFinalize(filterManager); > > > > I am not sure why the first one works without a problem, and the second one > works, but crashes on exit. > > > > HELP!!! > > > > Thanks, > > > > Wade > > > > > > > _______________________________________________ > sword-devel mailing list: sword-devel@crosswire.org > http://www.crosswire.org/mailman/listinfo/sword-devel > Instructions to unsubscribe/change your settings at above page >
_______________________________________________ sword-devel mailing list: sword-devel@crosswire.org http://www.crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page