typelib nutzen aber nicht providen

26/05/2010 - 17:21 von Martin Enke | Report spam
Liebe NG,

Ich möchte einen UDT in einer Typelib nutzen damit ich den UDT als
Übergabeparameter zwischen Klassen einsetzen kann. Habe auch eine
entsprechende TBL geschrieben (siehe unten) und kompiliert. Nach der
Installation des fertigen Programms startet dieses aber nicht weil ich
die TLB nicht auf dem Zielrechner mitinstalliert (und registriert) habe.
Und das möchte ich aus vielen Gründen auch nicht zumal es nicht
notwendig sein sollte da es nur eine exe gibt.
Was muss ich machen, dass mein kompiliertes Programm auf die TBL verzichtet?

hier der Quellcode:

#include "olectl.h"
import "oaidl.idl";
import "ocidl.idl";
[
uuid(2B1FE039-C47F-4E0D-BC05-A9AA6404F073),
helpstring("Report items TypeLib"),
version(7.0)
]
library ReportTypeDefs
{
importlib("stdole2.tlb");
typedef [uuid(58EC7007-C090-42A3-9D98-DA708070C6BE), version(1.0)]
struct REPORT_DOCPROPS {
[helpstring("PageText")] BSTR PageText;
[helpstring("FontName")] BSTR FontName;
[helpstring("CoverPage")] BSTR CoverPage;
[helpstring("HeaderFile")] BSTR HeaderFile;
[helpstring("HeaderText")] BSTR HeaderText;
[helpstring("FontSize")] short FontSize;
[helpstring("PaperSize")] short PaperSize;
[helpstring("Orientation")] short Orientation;
[helpstring("PageWidth")] short PageWidth;
[helpstring("PageHeight")] short PageHeight;
[helpstring("MargLeft")] short MargLeft;
[helpstring("MargTop")] short MargTop;
[helpstring("MargRight")] short MargRight;
[helpstring("MargBottom")] short MargBottom;
[helpstring("HeaderHeight")] short HeaderHeight;
[helpstring("FooterHeight")] short FooterHeight;
[helpstring("SkipTopOnNewPage")] VARIANT_BOOL SkipTopOnNewPage;
[helpstring("SkipLeftOnNewLine")] VARIANT_BOOL SkipLeftOnNewLine;
[helpstring("IsMidJustify")] VARIANT_BOOL IsMidJustify;
[helpstring("IsCustomHeader")] VARIANT_BOOL IsCustomHeader;
} REPORT_DOCPROPS;

typedef [uuid(BED7BE71-7132-4D91-8DCD-632DD9F9A272), version(1.0)]
struct REPORT_ITEM {
[helpstring("iKat")] short iKat;
[helpstring("iInst")] short iInst;
[helpstring("iID")] short iID;
[helpstring("sCaption")] BSTR sCaption;
[helpstring("mmLeft")] short mmLeft;
[helpstring("mmTop")] short mmTop;
[helpstring("mmWidth")] short mmWidth;
[helpstring("mmHeight")] short mmHeight;
[helpstring("iFontSize")] short iFontSize;
[helpstring("bChecked")] VARIANT_BOOL bChecked;
[helpstring("bNewPage")] VARIANT_BOOL bNewPage;
[helpstring("bNewLine")] VARIANT_BOOL bNewLine;
[helpstring("bFont")] VARIANT_BOOL bFont;
[helpstring("bBreake")] VARIANT_BOOL bBreake;
} REPORT_ITEM;
};
 

Lesen sie die antworten

#1 Sascha Trowitzsch
27/05/2010 - 19:30 | Warnen spam
Martin Enke wrote:
Liebe NG,

Ich möchte einen UDT in einer Typelib nutzen damit ich den UDT als
Übergabeparameter zwischen Klassen einsetzen kann. Habe auch eine
entsprechende TBL geschrieben (siehe unten) und kompiliert. Nach der
Installation des fertigen Programms startet dieses aber nicht weil ich
die TLB nicht auf dem Zielrechner mitinstalliert (und registriert)
habe. Und das möchte ich aus vielen Gründen auch nicht zumal es nicht
notwendig sein sollte da es nur eine exe gibt.
Was muss ich machen, dass mein kompiliertes Programm auf die TBL
verzichtet?



Versteh ich irgendwie nicht. Wieso benötigt deine EXE die registrierte TLB,
wenn sie mitkompiliert wurde? Ist ja nicht normal.
(Ich mache meine TLBs noch immer mit ODLs und mktypelib und kann nicht
beurteilen, ob deine MIDL-Syntax und die Includes korrekt sind.)

Ciao, Sascha


hier der Quellcode:

#include "olectl.h"
import "oaidl.idl";
import "ocidl.idl";
[
uuid(2B1FE039-C47F-4E0D-BC05-A9AA6404F073),
helpstring("Report items TypeLib"),
version(7.0)
]
library ReportTypeDefs
{
importlib("stdole2.tlb");
typedef [uuid(58EC7007-C090-42A3-9D98-DA708070C6BE), version(1.0)]
struct REPORT_DOCPROPS {
[helpstring("PageText")] BSTR PageText;
[helpstring("FontName")] BSTR FontName;
[helpstring("CoverPage")] BSTR CoverPage;
[helpstring("HeaderFile")] BSTR HeaderFile;
[helpstring("HeaderText")] BSTR HeaderText;
[helpstring("FontSize")] short FontSize;
[helpstring("PaperSize")] short PaperSize;
[helpstring("Orientation")] short Orientation;
[helpstring("PageWidth")] short PageWidth;
[helpstring("PageHeight")] short PageHeight;
[helpstring("MargLeft")] short MargLeft;
[helpstring("MargTop")] short MargTop;
[helpstring("MargRight")] short MargRight;
[helpstring("MargBottom")] short MargBottom;
[helpstring("HeaderHeight")] short HeaderHeight;
[helpstring("FooterHeight")] short FooterHeight;
[helpstring("SkipTopOnNewPage")] VARIANT_BOOL SkipTopOnNewPage;
[helpstring("SkipLeftOnNewLine")] VARIANT_BOOL SkipLeftOnNewLine;
[helpstring("IsMidJustify")] VARIANT_BOOL IsMidJustify;
[helpstring("IsCustomHeader")] VARIANT_BOOL IsCustomHeader;
} REPORT_DOCPROPS;

typedef [uuid(BED7BE71-7132-4D91-8DCD-632DD9F9A272), version(1.0)]
struct REPORT_ITEM {
[helpstring("iKat")] short iKat;
[helpstring("iInst")] short iInst;
[helpstring("iID")] short iID;
[helpstring("sCaption")] BSTR sCaption;
[helpstring("mmLeft")] short mmLeft;
[helpstring("mmTop")] short mmTop;
[helpstring("mmWidth")] short mmWidth;
[helpstring("mmHeight")] short mmHeight;
[helpstring("iFontSize")] short iFontSize;
[helpstring("bChecked")] VARIANT_BOOL bChecked;
[helpstring("bNewPage")] VARIANT_BOOL bNewPage;
[helpstring("bNewLine")] VARIANT_BOOL bNewLine;
[helpstring("bFont")] VARIANT_BOOL bFont;
[helpstring("bBreake")] VARIANT_BOOL bBreake;
} REPORT_ITEM;
};

Ähnliche fragen