Toon posts:

[Flash8] DLL gebruiken binnen project*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben op dit moment aan het proberen Flash 8 te laten communiceren met een in C geschreven dll (m.b.v. Dev-C++). Dit is mogelijk:

http://livedocs.adobe.com..._Parts&file=00005059.html

Ik heb in Dev-C++ een erg eenvoudige dll geschreven/laten genereren: Test.dll. Vervolgens heb ik een .exe gemaakt die deze aanroept: Run.exe. Meer niet. Als ik beide bestanden in een map plaats en Run open, dan werkt alles naar behoren.

Nu is het de bedoeling om Test.dll via de in de hierboven geposte link beschreven manier in Flash aan te roepen. Dat wil zeggen; Test.dll in de map:
boot drive\Documents and Settings\user\Local Settings\Application Data\Macromedia\ Flash 8\language\Configuration\External Libraries plaatsen.

Vervolgens moet er een Flash Javascript File in:
boot drive\Documents and Settings\user\Local Settings\Application Data\Macromedia\ Flash 8\language\Configuration\Commands
geplaatst worden die de dll aanroept.

Op dit moment heb ik slechts een JavaScript File met:
Test.HelloWorld()

Dit werkt niet. Ik krijg een foutmelding: TypeError: Test.HelloWorld is not a function

Ik heb een zipje samengesteld met alle bestanden:
dllmain.c & dll.h: de bestanden waarmee ik Test.dll heb gegenereerd
Test.dll: het gegenereerde dll bestand
Run project file & main.c: bestanden waarmee ik het prima werkende Run.exe heb gegenereerd
Run.exe
Down te loaden van: http://elektron.its.tudelft.nl/~wspek63/voorbeeld.rar

Hoe roep ik deze dll nu aan in Flash dmv de Flash Javascript file of nog liever, rechtstreeks via Actionscript? :?

Geen ervaring met Javascript...basic ervaring met Actionscript en C

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Heb je het voorbeeld zelf letterlijk overgenomen en werkt dat dan wel?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
Ik heb het voorbeeld van de Adobe site overgenomen en geprobeerd en dat werkt. Maar ik heb nu een eigen dll gemaakt die ik wil koppelen. Run.exe roept eenvoudigweg HelloWorld() aan "in de dll"...dus in feite wil ik Run.exe gewoon vervangen door Flash...Flash moet HelloWorld() aanroepen.

Uiteindelijk wil ik een Flash applicatie met een C programma (dll) laten communiceren om in Flash zeer ineffeciente matrix-operaties te laten uitvoeren...dit zijn uiteraard slechts de eerste stapjes...

[ Voor 7% gewijzigd door Verwijderd op 15-05-2007 14:08 ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Maar je maakt die functie public binnen je Flash environment... Van waar probeer je die functie dan aan te roepen?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
BtM909 schreef op dinsdag 15 mei 2007 @ 14:10:
Maar je maakt die functie public binnen je Flash environment... Van waar probeer je die functie dan aan te roepen?
Hmmm, ik snap je vraag niet helemaal...Dat is toch juist waar mijn vraag over gaat :?
Ik wil die functie aanroepen vanuit die Flash Javascript File in de Commands map...Dat is waar ik het op dit moment vanuit probeer te doen, maar dat geeft een foutmelding (op de manier waarop ik het doe). Nog liever doe ik het regelrecht vanuit Actionscript. Ik wil gewoon een bewijs van communicatie tussen Flash en die DLL.

En mijn redenering is dus; als Run.exe die functie kan aanroepen (wat dus het bewijs is dat die dll werkt), dan moet ik dat toch ook in Flash kunnen (op wat voor manier dan ook)?

[ Voor 12% gewijzigd door Verwijderd op 15-05-2007 15:10 ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Omdat ik niet snap dat Sample.computeSum(a, b) blijkbaar wel werkt en jouw voorbeeld niet, is het dan niet een kwestie van kijken waar de verschillen zijn :?


Ik heb verder niks gedaan met custom dll integratie binnen Flash, dus probeer alleen mee te denken ;)

[ Voor 25% gewijzigd door BtM909 op 15-05-2007 16:31 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
OK, op die fiets...ja true....Ik zou in principe de Sample.computeSum(a,b) functie kunnen vervangen door bijvoorbeeld de HelloWorld() functie (of door een functie die ook echt nut heeft). Het punt is dat die Sampe.dll al gegeneerd is en ik het niet in Dev-C++ voor elkaar ga krijgen met behulp van Sample.c en Sample.h een nieuwe (gewijzigde) dll te compilen die ook daadwerkelijk werkt. Heb dat al geprobeerd. Nu heeft Dev-C++ de mogelijkheid een DLL template te genereren, die het dus WEL doet als ik 'm zelf compile...En dat is Test.dll in dit geval...

Dus:
Sample.dll doet het in Flash, maar ik kan 'm niet veranderen...
Test.dll doet het buiten Flash, kan ik zelf aanpassen, maar doet het niet in Flash...en dat ligt volgens mij meer aan wat ik wel of niet include in Flash ofzo, vanwege de foutmelding die ik krijg

Hoop dat het een beetje duidelijk is wat ik bedoel...

Verwijderd

Topicstarter
Maar heb al van iemand gehoord dat het toch niks wordt, aangezien de uiteindelijke swf geen dll's zal kunnen aanroepen vanwege veiligheidsrisico's...Maar kan het gewoon niet uitstaan dat het niet werkt...

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

offtopic:
Let even op het feit dat als je als laatste reageert in een topic en opnieuw wilt reageren binnen 24, je de Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/edit.gif knop daarvoor gebruikt ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.

Pagina: 1