Mieszanie bibliotek z różnych wersji VisualStudio

0

Cześć. Załóżmy, że mamy aplikację (exe) pisaną w VS2012 i dllkę pisaną w VS2015. Wiem, że nie można zrobić czegoś takiego:

 
//dll
class MyClass
{
public:
  MyClass(std::string & name);
}

Zamiast std::string powinno się tu użyć po prostu char*
To jest jasne. Ale jasnym też jest, że czasem po prostu chcemy używać standardowej biblioteki. W końcu po coś ona powstała. Więc z pomocą przychodzi pImpl:

 
//dll.h
class MyClass
{
public:
  MyClass(char * name);

private:
  class Impl;
  Impl * m_pImpl;
}

//dll.cpp
class MyClass::Impl
{
public:
  std::string m_name;
  
  Impl(char * name)
  {
    m_name = name;
  }
}

MyClass::MyClass(char * name)
{
  m_pImpl = new Impl(name);
}

Z tego, co wiem, to już jest całkowicie dozwolone, zgadza się? I teraz w klasie Impl mogę sobie spokojnie używać wszystkiego na co mam ochotę, tak?

1

Wygląda w porządku, ale pytanie dlaczego chcesz w ogóle mieszać VS2012 z 2015?

0

Chodzi o urządzenia BT 4.0 Cała aplikacja jest pisana na VS2012, natomiast ta wersja nie posiada bibliotek do BT4.0 Więc robię dllkę, która będzie tworzona na VS2015 i będzie mogła używać BT4.0. Oczywiście nie będzie zaczytywana w systemach Windows < 8.1

1 użytkowników online, w tym zalogowanych: 0, gości: 1