AttilaB
asked on
Unable to build a Win32 solution with EXE and DLL projects inside: Visual Studio 2010
I am trying to build an example solution in Visual Studio 2010 Professional, that contains a win32 EXE project accessing a DLL:
I have reference set to DLL project for the EXE project:
Additional include directory specified:
It still doesn't build:
I wonder what is missing here. It is extremely simple code:
Main.cpp:
The source classes in DLL:
With header file:
The other class in the DLL:
With header file:
How come I cannot build it?
I have reference set to DLL project for the EXE project:
Additional include directory specified:
It still doesn't build:
------ Build started: Project: MyWin32CppApp, Configuration: Debug Win32 ------
Build started 1/31/2016 5:32:41 PM.
InitializeBuildStatus:
Touching "Debug\MyWin32CppApp.unsuccessfulbuild".
ClCompile:
Main.cpp
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(6): error C2871: 'Win32CppDLLExample' : a namespace with this name does not exist
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(12): error C2065: 'MyWin32ClassOne' : undeclared identifier
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(12): error C2146: syntax error : missing ';' before identifier 'sc1'
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(12): error C2065: 'sc1' : undeclared identifier
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(13): error C2065: 'sc1' : undeclared identifier
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(13): error C2228: left of '.Getvar' must have class/struct/union
type is ''unknown-type''
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(14): error C2065: 'sc1' : undeclared identifier
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(14): error C2228: left of '.Setvar' must have class/struct/union
type is ''unknown-type''
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(15): error C2065: 'sc1' : undeclared identifier
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(15): error C2228: left of '.Getvar' must have class/struct/union
type is ''unknown-type''
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(17): error C2065: 'MyWin32ClassTwo' : undeclared identifier
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(17): error C2146: syntax error : missing ';' before identifier 'sc2'
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(17): error C2065: 'sc2' : undeclared identifier
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(18): error C2065: 'sc2' : undeclared identifier
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(18): error C2228: left of '.Getvar' must have class/struct/union
type is ''unknown-type''
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(19): error C2065: 'sc2' : undeclared identifier
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(19): error C2228: left of '.Setvar' must have class/struct/union
type is ''unknown-type''
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(20): error C2065: 'sc2' : undeclared identifier
c:\documents and settings\user\my documents\visual studio 2010\projects\mywin32cppapp\mywin32cppapp\main.cpp(20): error C2228: left of '.Getvar' must have class/struct/union
type is ''unknown-type''
Build FAILED.
Time Elapsed 00:00:01.85
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========
I wonder what is missing here. It is extremely simple code:
Main.cpp:
#include<iostream>//for cin, cout and endl
using namespace std;
#include "MyWin32ClassOne.h"
#include "MyWin32ClassTwo.h"
using namespace Win32CppDLLExample;
int main()
{
cout<<"Hello C++ Win32 DLL"<<endl;
MyWin32ClassOne sc1;
cout<<"default value of variable from dll : "<<sc1.Getvar()<<endl;
sc1.Setvar(101);
cout<<"value of variable from dll : "<<sc1.Getvar()<<endl;
MyWin32ClassTwo sc2;
cout<<"default value of variable from dll : "<<sc2.Getvar()<<endl;
sc2.Setvar(200);
cout<<"value of variable from dll : "<<sc2.Getvar()<<endl;
cin.get();//pause console to see the message
return 0;
}
The source classes in DLL:
#include "MyWin32ClassOne.h"
namespace Win32DLLExample
{
MyWin32ClassOne::MyWin32ClassOne()
{
varone = 123;
}
void MyWin32ClassOne::Setvar(int val)
{
varone = val;
}
int MyWin32ClassOne::Getvar()
{
return varone;
}
}
With header file:
namespace Win32DLLExample
{
class MyWin32ClassOne
{
private:
int varone;
public:
__declspec(dllexport) MyWin32ClassOne();//constructor
__declspec(dllexport) void Setvar(int val);
__declspec(dllexport) int Getvar();
};
}
The other class in the DLL:
#include "MyWin32ClassTwo.h"
namespace Win32DLLExample
{
MyWin32ClassTwo::MyWin32ClassTwo()
{
vartwo = 345;
}
void MyWin32ClassTwo::Setvar(int val)
{
vartwo = val;
}
int MyWin32ClassTwo::Getvar()
{
return vartwo;
}
}
With header file:
namespace Win32DLLExample
{
class MyWin32ClassTwo
{
private:
int vartwo;
public:
__declspec(dllexport) MyWin32ClassTwo();//constructor
__declspec(dllexport) void Setvar(int val);
__declspec(dllexport) int Getvar();
};
}
How come I cannot build it?
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER