Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Prikaz matematickih (LaTex) formula u VB-u???

[es] :: Visual Basic 6 :: Prikaz matematickih (LaTex) formula u VB-u???

[ Pregleda: 3216 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

igorpet

Član broj: 18898
Poruke: 553
*.blueisp.co.yu.



+46 Profil

icon Prikaz matematickih (LaTex) formula u VB-u???02.10.2007. u 20:25 - pre 200 meseci
Treba mi kontrola (po mogucstvu free) ili source cod kojim cu moci da prikazem matematicke formule u VB 6.

Npr. u TextBox-u ukucam c^2 = a^2 + b^2 \Rightarrow c = \sqrt {a^2 + b^2 } (LaTex sintaksa) a da na ekranu dobijem:


Kao sto ovaj forum moze da prikazuje formule date u LaTex sintaksi ja zelim da ih vidim u VB-u.
Ako neko zna nesto o ovome bio bih zahvalan da podeli informaciju.
Ima puno programa koji to mogu ali ne nadjoh nijednu kontrolu ili neki source cod za VB, a gotovo sam siguran da mora da postoji (na www.Planet-Source-Code.com nista o ovome, da ne poverujes).

(Ili je mozda bolje da pitanje postavim na forumu Matematika?)
 
Odgovor na temu

igorpet

Član broj: 18898
Poruke: 553
*.blueisp.co.yu.



+46 Profil

icon Re: Prikaz matematickih (LaTex) formula u VB-u???03.10.2007. u 14:45 - pre 200 meseci
Da li neko zna kako da ovaj CSHARP kod prevedem u VB6 (mozda je ovo nesto sto mi treba)?
Trebam da deklarisem DLL i pozovem funkciju GifFromEq, ali kako god da uradim prijvljuje mi gresku (Run-time error 49, Bad DLL caling convention)
Code:

    [System.Security.SuppressUnmanagedCodeSecurity()]
    internal class NativeMethods
    {
        private NativeMethods()
        { //all methods in this class would be static
        }

        [System.Runtime.InteropServices.DllImport("LTex.dll")]
        internal static extern int GifFromEq(string expr, string fileName);

A zatim se funkcija poziva u kodu
Code:
NativeMethods.GifFromEq(equation, tempGifFilePath);

Deluje jednostavno, ali mi nesto ne ide, ne znam gde gresim.
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
195.252.105.*



+7 Profil

icon Re: Prikaz matematickih (LaTex) formula u VB-u???03.10.2007. u 19:47 - pre 200 meseci
Ovaj kod koji si napisao nema veze sa VB6
Jel mozes da zakacis tu LTex.dll da probam da ti deklarisem tu funkciju.
Inace tema je interesantna.
Pozdrav
 
Odgovor na temu

igorpet

Član broj: 18898
Poruke: 553
*.blueisp.co.yu.



+46 Profil

icon Re: Prikaz matematickih (LaTex) formula u VB-u???03.10.2007. u 19:55 - pre 200 meseci
Pa da, kod je CSHARP koji hocu da prevedem u VB6.
Trebam da deklarisem LTex.DLL i pozovem funkciju GifFromEq

Ovako ne radi
Declare Function CreateGifFromEq Lib "MimeTex.dll" (ByVal expr As String, ByVal FileName As String)

Prikacicu dll, samo kasnije sada zurim.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Prikaz matematickih (LaTex) formula u VB-u???03.10.2007. u 22:19 - pre 200 meseci
probaj ove dve deklaracije (jedna bi trebala da radi, verovatno ova prva)
Code:

Declare Function GifFromEq Lib "LTex.dll" (ByRef expr As String, ByRef fileName As String) As Long
Declare Function GifFromEq Lib "LTex.dll" (ByVal expr As String, ByVal fileName As String) As Long

i LTex.dll stavi u isti folder sa exe-om
 
Odgovor na temu

igorpet

Član broj: 18898
Poruke: 553
*.blueisp.co.yu.



+46 Profil

icon Re: Prikaz matematickih (LaTex) formula u VB-u???03.10.2007. u 22:53 - pre 200 meseci
Sve ove kombinacije za deklarisanje sam isprobao, ali nece.
Program pronalazi dll (stavio sam ga u system32, prepoznaje i pogresan poziv funkcije)

Evo kacim DLL, a funkcija koja se poziva je CreateGifFromEq, gore je greska.

Nasao sam i ovo:

I looked at ltex.c, and noticed the following:

#if defined(_USRDLL)
extern _declspec(dllexport)int _cdecl
CreateGifFromEq ( char *expression, char *gifFileName );
#endif

Looking further up in the code indicates that _USRDLL is defined on windows systems, so the _cdecl calling convention needs to be used.

"It is not possible to directly call a C function in a DLL if that function uses the _cdecl calling convention. This is because Visual Basic uses the _stdcall calling convention for calling functions. This is a problem because if _cdecl is used, the calling function is responsible for cleaning up the stack. However, if _stdcall is used, the called function is responsible for cleaning up the stack."

Zna li ko kako se deklarisu ovakvi dll-ovi?
Ako funkcuja ne moze da se poziva direktno, kako moze drugacije?
Zna li ko, u ovom gore CSHARP kodu da li se funkcija poziva direktno ili ide preko neke Klase?

Nisam se susretao do sada sa ovom problematikom.
Prikačeni fajlovi
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Prikaz matematickih (LaTex) formula u VB-u???04.10.2007. u 00:27 - pre 200 meseci
zahvaljujuci kodu Paula Catona mozemo lako da pozivamo funkcije koje koriste CDECL calling konvenciju.

pogledaj attachment...


Prikačeni fajlovi
 
Odgovor na temu

igorpet

Član broj: 18898
Poruke: 553
*.blueisp.co.yu.



+46 Profil

icon Re: Prikaz matematickih (LaTex) formula u VB-u???04.10.2007. u 11:35 - pre 200 meseci
Tacno sam pretpostavljao da ne moze biti nesto prosto, ali kod g. Paula Catona je prevaziso moja ocekivanja o komplikovanosti poziva jedne funkcije u dll biblioteci.
KOd vise podseca na "hakerski zahvat" nego na regularni poziv, ali bitno da radi.
Hvala Aleksandre na resenju.

Medjutim, pitanjima tu nije kraj.
Posto na osnovu onoga sto sam video i razumeo u kodu on ustvari "patcuje" dll da bi omogucio regularni poziv, interesuje me da li je moja konstatacija tacna i da li bi LTeX.dll mogla da se "pacuje trajno" a da se zatim normalno deklarise i poziva u VB?

Ili, da li bi funkcija radila ako se u originalnom kodu
Code:

#if defined(_USRDLL)
extern _declspec(dllexport)int _cdecl
CreateGifFromEq ( char *expression, char *gifFileName );
#endif

_cdecl jednostavno zameni sa _stdcall (jer Microsoft Windows support two main calling conventions: _cdecl and _stdcall). I da li kod g. Paula Catona upravo to radi?

Ovo pitam zbog brzine izvrsavanja, jer pretpostavljam da bi regularno pozvana DLL radila daleko brze od ovog nacina.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Prikaz matematickih (LaTex) formula u VB-u???04.10.2007. u 12:11 - pre 200 meseci
pa, sta on radi to je da funkciju z_DO_NOT_CALL zameni sa asm kodom koji se wrappuje oko cdecl funkcije, tj z_DO_NOT_CALL je stdcall i ona samo prosledi parametre cdecl funkciji i posle povratka iz funkcije samo skloni parametre sa steka.

ukoliko imash ceou source zameni _cdecl sa _stdcall i probaj da rekompajliras.
 
Odgovor na temu

[es] :: Visual Basic 6 :: Prikaz matematickih (LaTex) formula u VB-u???

[ Pregleda: 3216 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.