Celebrate National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

please help me!

Posted on 2001-08-28
8
Medium Priority
?
310 Views
Last Modified: 2013-11-20
I am working with this mfc/ole stuff that is driving me nuts.

the samples I have work fine, but when I remove the framework they have, and replace it with a console type version, the stuff no longer works...

this is the object I am trying to create:

class IDatabase : public COleDispatchDriver
{
public:
     IDatabase() {}          // Calls COleDispatchDriver default constructor

//continues...

I am trying to create it like this:
IDatabase Database;

then I try to use it:
     Database.CreateDispatch("ACTOLE.DATABASE", pException);              

which I believe calls COleDispatchDriver::CreateDispatch

anyways, I get an exception when I do that...
and I'm not sure why.



please help me
0
Comment
Question by:bebonham
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 2
8 Comments
 
LVL 6

Expert Comment

by:Triskelion
ID: 6432756
What is the ACTOLE.DATABASE?
Does it have to be registered?
Is it a ClassID?

Did you trace through each step of the creation in the debugger?

I made a sample app and it failed at getting the ClassID.

Hmmm...
0
 
LVL 8

Author Comment

by:bebonham
ID: 6432899
okay, it must have been something else...sorry about this...feel stupid..but okay here is where I am now:

#include "StdAfx.h"
#include <iostream>
#include <string>
#include <fstream>
#include "actole.h"
#include "Actflds.h"



void ListContacts()
{
     try
     {
          COleException *pException=new COleException;

     
     IDatabase Database;                                            
     Database.CreateDispatch("ACTOLE.DATABASE", pException);
     Database.Open("C:\\My Documents\\ACT\\Database\\Act5Demo.dbf");
     IContact Contact;
     LPDISPATCH contactDispatch = Database.GetContact();
     //Contact.AttachDispatch(contactDispatch, TRUE);
     Database.Close();
     Database.ReleaseDispatch();
     }

     
     catch(...)
     {
          TRACE("Detected Exception in CActcliDlg::OnListContacts() \n");          
          AfxMessageBox("Detected Exception in CActcliDlg::OnListContacts ");
     }
}




int main()
{
     ListContacts();
     return 0;
}



now, if you uncomment that one line it throws an exception...

yes, the ACTOLE.DATABASE needs to be registered...

how can I get an answer on this...

what do you suggest I do?
I am not too good at the debugger...

0
 
LVL 8

Author Comment

by:bebonham
ID: 6432919
here is what I think I got from the debugger..


Loaded 'C:\WINDOWS\SYSTEM\USER32.DLL', no matching symbolic information found.
Loaded 'C:\WINDOWS\SYSTEM\ADVAPI32.DLL', no matching symbolic information found.
Loaded 'C:\WINDOWS\SYSTEM\GDI32.DLL', no matching symbolic information found.
Loaded 'C:\WINDOWS\SYSTEM\KERNEL32.DLL', no matching symbolic information found.
Loaded symbols for 'C:\WINDOWS\SYSTEM\MSVCRTD.DLL'
Loaded symbols for 'C:\WINDOWS\SYSTEM\MFC42D.DLL'
Loaded 'C:\WINDOWS\SYSTEM\OLE32.DLL', no matching symbolic information found.


Warning: CreateDispatch returning scode = CO_E_NOTINITIALIZED ($800401F0).

Warning: attempt to call Invoke with NULL m_lpDispatch!


what do the experts think?

Thanks,
Bob
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 8

Author Comment

by:bebonham
ID: 6433048
I think my problem is with this:
I am including afxdisp.h

     AfxOleInit();


0
 
LVL 7

Accepted Solution

by:
jimwasson earned 200 total points
ID: 6433731
The error is saying that COM has not been initialized.  I'm uncertain in a console app but you need to call AfxOleInit() before doing any COM calls. I'd do it before calling ListContacts().
0
 
LVL 8

Author Comment

by:bebonham
ID: 6433826
thank you!

you are correct, that is what I also found w/ help from the c++ ta.

problem is I am trying to do a console app :)

I tried the cpp OleInitialize() but that doesn't seem to jive quite right with the MFC stuff.


know any good places to learn about the structure of an MFC program...my problem is I can understand c++ structure enough, but all the different files and stuff that go into MFC are confusing.

Thanks,

Bob
0
 
LVL 7

Expert Comment

by:jimwasson
ID: 6433874
I don't know of any really good places on the net.  MFC has been around for a fair while so there are a ton of books out on it.  I think that the Wrox book Professional MFC by Mike Blaczek (aak -- spelling!) is one of the most comprehensive.  Mike was one of the original architects of MFC.
0
 
LVL 8

Author Comment

by:bebonham
ID: 6433903
yeah I have it...

great paperweight for beginners :)
0

Featured Post

Enroll in September's Course of the Month

This month’s featured course covers 16 hours of training in installation, management, and deployment of VMware vSphere virtualization environments. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This is to be the first in a series of articles demonstrating the development of a complete windows based application using the MFC classes.  I’ll try to keep each article focused on one (or a couple) of the tasks that one may meet.   Introductio…
Introduction: Finishing the grid – keyboard support for arrow keys to manoeuvre, entering the numbers.  The PreTranslateMessage function is to be used to intercept and respond to keyboard events. Continuing from the fourth article about sudoku. …
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…

730 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question