bonjour,
j'ai un soucis et je tourne en rond. Je dois interfacer un objet com et l'affection d'une chaine de caractère à un champ texte à un objet de l'interface génère une erreur dans la ndll.dll. J'ai un exemple en VB qui marche.
Si quelqu'un a une idée.
Code VB qui marche
TLB de l'objet com
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 If Engine.GetSceneByName("Webcams_duel", SceneObj) Then Dim TextObj As xpTextObject If SceneObj.GetObjectByName("Webcam1_text", TextObj) Then TextObj.Text = 'toto' End If
Mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 IxpTextObject = interface(IxpTexturedObject) ['{A64CFD48-EC26-4C6F-8D7C-78F2B9F211C0}'] function Get_Text: WideString; safecall; procedure Set_Text(const Text: WideString); safecall; ..... property Text: WideString read Get_Text write Set_Text;
Dans le TLB il y a aussi les objets TxpTextObject mais je ne sais pas comment associer l'interface à l'objet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 var SceneObj: IxpScene; BaseObject: IxpBaseObject; TextObj: IxpTextObject; begin ....... if SceneObj.GetObjectByName('Webcam1_text', BaseObject) then begin TextObj := BaseObject as IxpTextObject; if TextObj <> nil then begin TextObj.Text := 'toto'; <-- endroit du plantage ntdll.dll end; end;
les dev se font en D7 mais l'équivalent en D2010 a donné la même chose.
Bref je suis en panne ....
Partager