Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Vb Dll in C++ komische Meldung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.12.2003, 14:22 Uhr
~Michael L.
Gast


Hi, schon wieder ich. Ich hoffe das ist erst einmal das letzte posting.

Also ich habe mir eine DLL in VB geschrieben (hoffe ich, habe davon wenig Ahnung.)

Visual Basic:
Private Function GetFilePath(str As String) As String

Dim ts As TSCoreBLL.TSBLLFile5
Dim sp As String
Dim servername As String
Dim db As String
Dim tsid As Long
Dim inst As Long
Dim fol As Long
Dim spath As String
Dim rs As Recordset
Dim ma As Variant
Dim filename As String

Set ts = CreateObject("TSCoreBLL.TSBLLFile5")

sp = Command

Text1.Text = sp

ts.DecodeMoniker sp, servername, db, tsid, inst, fol, spath

ts.ListPhysicalFiles "", tsid, True, False, False, rs

GetFilePath = rs.Fields("Path").Value

Set ts = Nothing

End Function


Die kann auch ohne Fhler erstellt werden (ActiveX DLL)

Nun wollte ich die in eines meiner VC++ Programme einbinden (Bin dabei nach
www.codeproject.com/dll/vbactivexwithvc.asp?target=VB gegangen)

Habe bei mir in StdAfx.h folgendes ergänzt

C++:
#import "TerraShareDLL.dll"
using namespace Project1;



Und nun wollte ich eine Funktion schreiben die diese DLL nutzt.

C++:
CString getFiePathFromMoniker(CString moniker)
{
    // initalisierungen
    HRESULT hresult;
    CLSID cls;
    // Com Library initalisieren
    CoInitialize(NULL);
    // retrieve CLSID der Komponente
    hresult = CLSIDFromProgID(OLESTR("TerraShareDLL.dll"),&cls);

    // Instanz der Komponente anlegen
    Utilities* ts;
    // CLSCTX_INPROC_SERVER -> DLL im selben Adressbereich
    hresult = CoCreateInstance(cls,NULL,CLSCTX_INPROC_SERVER,__uuidof(Utilities),(LPVOID *) &ts);
    // Ergebnis abfragen
    if(FAILED(hresult))
    {
        TRACE("getFiePathFromMoniker(CString moniker):cant create Instance");
        return "";
    }
    // FilePath besorgen
    CString tmp = ts->GetFilePath(moniker);
    // aufräumen
    ts->Release();
    
    return tmp;

}//getFilePathFromMoniker



Allerdings bekomme ich beim erstellen den Fehler :
\\Ipi143\TSSDK-Projects\TerraShare C++\ExtractBildArea\funktion.cpp(25) : error C2027: Verwendung des undefinierten Typs "Utilities"

Aber weder die Funktion ist falsch geschreiben. noch heißt die Klasse anders.
(ist doch was hinter (Name) steht oder?)

Ich hoffe ich habe nichts vergessen. Wäre super wenn jemand einen Tipp hat (Das Projekt und die DLL kann man auch unter
www.magicfire.da.ru/Datein/Projekt.rar bekommen, und keine Angst ist nur was gnaz kleines)

Danke für alle die mir (schon wieder) helfen

mfg Michael
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.12.2003, 17:58 Uhr
~Michael
Gast


hat keiner ne Idee??

Michael
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.03.2004, 16:57 Uhr
~blabla
Gast


guck mal ob hresult vielleicht NULL ist. wenn ja, kann er die dll nicht laden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: