2013-06-27 14 views
5

W porządku, więc nie wiem zbyt wiele o COM. Wiem tylko, że jeśli piszesz kod w jednym z sponsorowanych przez Microsoft języków programowania, możesz napisać coś w rodzaju 3 linii kodu, aby uruchomić program Excel, otworzyć pusty skoroszyt, wkleić niektóre dane do komórek i powiedzieć programowi Excel do wykresu to. Ale nie mam pojęcia, jak działa ta czarna magia; Wiem tylko, że to jakoś związane z COM.Czy Haskell może (łatwo) wykonywać COM?

Czy można robić takie rzeczy z Haskellem? Czy to jest "łatwe", czy będzie piekielnie trudne? Bo jeśli to będzie łatwe, mogę spróbować uruchomić to, ale jeśli jest to naprawdę trudne, są prostsze sposoby na tworzenie wykresów w Excelu ...

Mam świadomość, że tak naprawdę nie musisz potrzebujesz do uczyć się COM tylko do wykresów. (Np. Mógłbym użyć GraphVis lub GNUplot, lub Google Chart, lub napisać małą funkcję Cairo, lub ...) Interesuje mnie, jak łatwo lub trudno jest zrobić COM z Haskellem, a to tylko motywujący przykład .

+0

Właśnie w celu wyjaśnienia, pytasz, jak łatwo jest do współpracy z COM lub jak łatwo jest zbudowanie systemu podobnego do COM w Haskell? –

+0

@GabrielGonzalez brzmi jak ten pierwszy. –

+0

@GabrielGonzalez Interesuje mnie, jak łatwo jest zmusić Haskella do rozmowy z wszystkimi istniejącymi obiektami Windows, które eksportują interfejs COM. – MathematicalOrchid

Odpowiedz

2

HDirect był standardem, ponieważ został ostatnio załadowany 3 lata temu Wyobrażam sobie, że jest nieco bitotowany.

Wygląda na to, że istnieje new package, którego celem jest robienie tego samego rodzaju rzeczy.

+1

Tak, natknąłem się na odnośniki do tych dwóch rzeczy, ale nie mogłem znaleźć żadnego rzeczywistego _explanation_ tego, jak możesz ich użyć ... – MathematicalOrchid

1

Przepraszam, może trochę się spóźniłem.

Jest już ktoś, kto gra z programu Excel: Excel Automation with haskell gives a seg fault

Pisałem kilka skryptów, które komunikują się z Clearcase i ClearQuest. To było dość łatwe, dopóki nie pojawią się problemy z wariantem StringArray (patrz na moje pytanie na SO).

Użyłem HDirect do wygenerowania kodu kleju Haskell. Procedura jest:

  • launch OLE/COM Object Viewer i wybierz Widok TypeLib w menu Plik
  • wybrać DLL (np ccauto.dll dla Clearcase)
  • zapisać plik IDL
  • bieg HDirect ten plik IDL w celu uzyskania kodu Haskell kleju
  • import go w swoim projekcie
Powiązane problemy