[ Goran Rakić @ 07.09.2012. 17:30 ] @
Nakon pitanja kako da promenim font u VS2010 editoru, nastavljam sa pitanjima za koja ne bih očekivao da ću ih postavljati. :D Imam sledeći test program koji prikazuje značenja reči iz Wordovog rečnika sinonima. Testirao sam sa Microsoft Office 2010 i Microsoft Office 2013 Preview. Iako sve deluje u redu, za ovaj problem sam tražio pomoć i na StackOverflow, bez uspeha za sada. Code (csharp): using System; using Word = Microsoft.Office.Interop.Word; class Program { static void Main(string[] args) { string word = "elite"; // = "common"; var app = new Word.Application(); var synInfo = app.SynonymInfo[word, Word.WdLanguageID.wdEnglishUS]; if (synInfo.Found && synInfo.MeaningCount > 0) { foreach (var meaning in synInfo.MeaningList as Array) Console.WriteLine(meaning.ToString()); } System.Runtime.InteropServices.Marshal.FinalReleaseComObject(synInfo); app.Quit(Word.WdSaveOptions.wdDoNotSaveChanges); System.Runtime.InteropServices.Marshal.FinalReleaseComObject(app); } } Program radi kako bi se i očekivalo, međutim samo za neke reči, poziv get_SynonymInfo() baca izuzetak. Code: Unhandled Exception: System.Runtime.InteropServices.COMException: Insufficient memory or disk space. at Microsoft.Office.Interop.Word.ApplicationClass.get_SynonymInfo(String Word, Object& LanguageID) at WordInteropTest.Program.Main(String[] args) in Program.cs:line 11 Reči za koje znam da bacaju izuzetak: - elite (ali "elites" radi) - near - tuck - tucks - walking - onboard - horrified Istovremeno skoro 150 000 drugih reči ne pravi nikakav problem. Ako koristim rečnik sinonima ručno u Wordu, dobijam ispravne rezultate. Kako da izbegnem izuzetak u COM Interop kodu i dobijem rezultate u programu? Može li neko da testira kod sebe da li program gore radi? [Ovu poruku je menjao Goran Rakić dana 07.09.2012. u 18:51 GMT+1] |