problème d'interface sur objet COM
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
Code:
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 |
TLB de l'objet com
Code:
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; |
Mon code
Code:
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; |
Dans le TLB il y a aussi les objets TxpTextObject mais je ne sais pas comment associer l'interface à l'objet.
les dev se font en D7 mais l'équivalent en D2010 a donné la même chose.
Bref je suis en panne ....