Archived

This forum has been archived. Please start a new discussion on GitHub.

Ice 3.4.0/3.4.1 with Visual C++ 2010

Hi,

I have Visual c++ 2010 express installed and I'm building my c++ icebox services with it. And I'm using Windows SDK v 7.1.

When I start up the IceBox I get a crash. Are the Ice binaries compatible with Visual C++ 2010? This same service is working ok with Ice 3.4.0 when the service is compiled with Visual C++ 2008 and Windows SDK v6. I tried this using both Ice 3.4.0 and 3.4.1.

The the output from the console is attached. It seems that the ice logger is logging garbage before it crashed.

And this is the start() method
void ConfigurationSvc::start(const string &name,
                             const Ice::CommunicatorPtr &communicator,
                             const Ice::StringSeq &)
{
    m_comm = communicator;
    m_logger = communicator->getLogger();
    m_logger->trace("ConfigurationSvc", "starting");

    if (!m_adapter)
    {
        m_logger->trace(name, "creating new adapter");
        m_adapter = communicator->createObjectAdapter(name);

        m_machineConfigurationI.reset(new MachineConfigurationI(*this));
        Ice::ObjectPrx prx = m_adapter->add(m_machineConfigurationI.get(),
                communicator->stringToIdentity(communicator->getProperties()->getProperty("MachineConfiguration.Identity")));
    }

    m_logger->trace(name, "activating adapter");
    m_adapter->activate();
    m_logger->trace(name, "adapter activated");

    // Initialize the database connection pool
    std::string dbConnString = m_comm->getProperties()->getProperty("ODBC.Connection");
    m_dbConnectionPool.reset(new DbConnectionPool(m_comm, dbConnString, 5));
}

Thanks
Budyanto

Comments

  • mes
    mes California
    Hi,

    Are you sure you're using the right Ice run-time DLLs? Please note that the libraries for Visual Studio 2010 are located in <ICE_HOME>\bin\vc100 (or <ICE_HOME>\bin\vc100\x64), so your PATH should include the appropriate directory.

    Regards,
    Mark
  • Thats it. I didn't realize there were separate directories. Yes that fixed it.

    Thanks.