---
title: "COM"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/100746-com"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "aleborg"
published: "2004-04-01T10:16:26.000Z"
updated: "2004-04-02T11:09:02.000Z"
replies: 9
views: 362
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/100746-com"
---

# COM

## #1 — aleborg, 2004-04-01T10:16Z

Jag har lagt till en referens till en COM-fil(dll-fil)
Sen försöker jag anropa den med:

```
	MerakCOM.DomainObjectClass merak = new MerakCOM.DomainObjectClass();
	merak.New(domain);
	merak.SetProperty("d_description",username);
	merak.Save();
```

men får bara felet:

System.Runtime.InteropServices.COMException (0xFFFFFFFF): Exception from HRESULT: 0xFFFFFFFF. at MerakCOM.DomainObjectClass.SetProperty(Object Command, Object Value) at Kontrollpanelen.classlib.Merak.CreateDomain()

jag frågade utvecklarna om detta och fick svaret:

> MerakCOM.DomainObject merak = new MerakCOM.DomainObject(); Does not create an instance to the object. That's why it does not work for you. You have to use something else It has to be be a string input like:
> 
> merak = createobject("MerakCOM.DomainObject");
> something like that.
> It's not a library it's a COM

 
Han missade att jag programmerade i C# :OO 
Hur gör man egentligen med COM-object?

Permalänk: https://www.webforum.nu/p/100746

## #2 — niko, 2004-04-01T10:30Z

Vad händer om du skriver:

```
Object o1 = "d_description"; Object o2 = username;
merak.SetProperty(o1, o2);
```

?

Permalänk: https://www.webforum.nu/p/1312782

## #3 — aleborg, 2004-04-01T11:26Z

samma fel, fick det här nu av dom också:

> I don't know C# but this what they say:
> 
> <http://www.csharphelp.com/archives/archive190.html>
> 
> You don't have the TLB file so it will not work for you. Your code does not create the instance to the COM object. The merak variable is NULL in your case. You have to work that out yourself....

jag hänger inte alls med  :l

Permalänk: https://www.webforum.nu/p/1312820

## #4 — aleborg, 2004-04-01T11:35Z

om jag kör TLBEXP.EXE får jag följande:

> C:\\Inetpub\\wwwroot\\Kontrollpanelen\\bin\>tlbexp Interop.MerakCOM.dll /out:MerakCOM
> .tlb
> Microsoft (R) .NET Framework Assembly to Type Library Converter 1.1.4322.573
> Copyright (C) Microsoft Corporation 1998-2002.  All rights reserved.
> 
> TlbExp error: CLR-sammansättningen c:\\inetpub\\wwwroot\\kontrollpanelen\\bin\\intero
> p.merakcom.dll importerades från ett typbibliotek och kan inte exporteras igen t
> ill ett typbibliotek. Kontrollera att typbiblioteket som sammansättningen import
> erades från är registrerat.

Permalänk: https://www.webforum.nu/p/1312826

## #5 — niko, 2004-04-01T11:50Z

Jag förstår inte heller. Du har lagt till referensen till COM-dll:en VS.NET? Du kan steppa förbi de två första raderna? Felet kommer på SetProperty-raden? Isåf har ju instansen skapats och det verkar vara nåt problem med inparametrarna till *SetProperty*? Har du förtydligat det för dem?

Permalänk: https://www.webforum.nu/p/1312832

## #6 — aleborg, 2004-04-01T11:59Z

Jag har lagt till den som referens i VS.NET och jag får upp allt innehåll i Intellisencen. Jag har gett dom det kompletta felmeddelandet.

Permalänk: https://www.webforum.nu/p/1312837

## #7 — aleborg, 2004-04-01T12:56Z

Fick detta nu:

> I still think it's not possible to do that. The "new" call is for classes creation. Not for COM object access.
> Try to call merak-\>GetDomainCount() or anything. You will see it reports the error too. Merak is set to zero or fffffffff. Please if you find out how to create the instance let me know and I'll add it to the docs for other people. search the web for more info Cheers J

Så här tycker dom att man ska göra i PHP:

```
if ($com = new COM("MerakCOM.APIObject"))
{
  $domain = $com->NewDomain("test.com");
  $domain->SetProperty("d_description", "Description");
  $domain->SetProperty("d_adminemail", "postmaster@test.com");
  $domain->Save();
}
```

Jag har testat med APIObject och får samma fel.

Permalänk: https://www.webforum.nu/p/1312859

## #8 — aleborg, 2004-04-01T13:18Z

Roliga är att om jag skriver:

	MerakCOM.APIObject merak = new MerakCOM.APIObjectClass();
	return merak.GetDomainCount().ToString();

då får jag ut antalet domäner :)

Och kör jag 
MerakCOM.DomainObject merak = new MerakCOM.DomainObjectClass();
merak.Open("aleborg.se");
return merak.GetAccountList.ToString();

så får jag ut alla konton som finns på aleborg.se!
Verkar som om deras COM inte funkar som den ska!

Permalänk: https://www.webforum.nu/p/1312867

## #9 — aleborg, 2004-04-02T10:38Z

Fick tips om det här: <http://www.devarticles.com/c/a/C-Sharp/Using-Late-Bound-COM-Objects/3/>
det ska tydligen lösa problemet, nu ska man bara löse det smidigt också :(

Permalänk: https://www.webforum.nu/p/1313345

## #10 — aleborg, 2004-04-02T11:09Z

någon som vet hur man går till väga och vart man ska lägga
	object myObject =Activator.CreateComInstanceFrom("Interop.MerakCOM.dll", 
	"MerakCOM.DomainObject").Unwrap(); 

	Type myType = myObject.GetType();

Permalänk: https://www.webforum.nu/p/1313360

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/100746-com
