Unresolved External Symbol Errors when Linking to my Library?

Started by
8 comments, last by JackOfAllTrades 13 years, 2 months ago
I have been writing an API for the past few months and I was defining the winMain function inside the library and compiling it as an exe to test it's functionality. I've gotten it working to a level I consider usable so I compiled it out to a lib, copied the winMain function into a new project, and linked to the lib. When I try to compile the project I get a lot of unresolved external symbol errors from functions that are used inside the library.

I don't understand why this is happening because I thought the libraries were compiled into my library? Here is the debug output:

1>------ Build started: Project: Ovgl_FPS, Configuration: Debug Win32 ------
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol _D3DX10CreateEffectFromFileW@48 referenced in function "public: class Ovgl::Effect * __thiscall Ovgl::Instance::CreateEffect(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?CreateEffect@Instance@Ovgl@@QAEPAVEffect@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall fbxsdk_2011_3_1::KFbxVector4::KFbxVector4(class fbxsdk_2011_3_1::fbxVectorTemplate3<double> const &)" (__imp_??0KFbxVector4@fbxsdk_2011_3_1@@QAE@ABV?$fbxVectorTemplate3@N@1@@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall fbxsdk_2011_3_1::KFbxVector4::~KFbxVector4(void)" (__imp_??1KFbxVector4@fbxsdk_2011_3_1@@QAE@XZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: double & __thiscall fbxsdk_2011_3_1::KFbxVector2::operator[](int)" (__imp_??AKFbxVector2@fbxsdk_2011_3_1@@QAEAANH@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall fbxsdk_2011_3_1::KFbxMesh::GetTextureUVIndex(int,int,enum fbxsdk_2011_3_1::KFbxLayerElement::ELayerElementType)" (__imp_?GetTextureUVIndex@KFbxMesh@fbxsdk_2011_3_1@@QAEHHHW4ELayerElementType@KFbxLayerElement@2@@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class fbxsdk_2011_3_1::KFbxLayerElementArrayTemplate<int> & __thiscall fbxsdk_2011_3_1::KFbxLayerElementTemplate<class fbxsdk_2011_3_1::KFbxVector2>::GetIndexArray(void)" (__imp_?GetIndexArray@?$KFbxLayerElementTemplate@VKFbxVector2@fbxsdk_2011_3_1@@@fbxsdk_2011_3_1@@QAEAAV?$KFbxLayerElementArrayTemplate@H@2@XZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall fbxsdk_2011_3_1::KFbxVector2::~KFbxVector2(void)" (__imp_??1KFbxVector2@fbxsdk_2011_3_1@@QAE@XZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class fbxsdk_2011_3_1::KFbxVector2 & __thiscall fbxsdk_2011_3_1::KFbxVector2::operator=(class fbxsdk_2011_3_1::KFbxVector2 const &)" (__imp_??4KFbxVector2@fbxsdk_2011_3_1@@QAEAAV01@ABV01@@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class fbxsdk_2011_3_1::KFbxLayerElementArrayTemplate<class fbxsdk_2011_3_1::KFbxVector2> & __thiscall fbxsdk_2011_3_1::KFbxLayerElementTemplate<class fbxsdk_2011_3_1::KFbxVector2>::GetDirectArray(void)" (__imp_?GetDirectArray@?$KFbxLayerElementTemplate@VKFbxVector2@fbxsdk_2011_3_1@@@fbxsdk_2011_3_1@@QAEAAV?$KFbxLayerElementArrayTemplate@VKFbxVector2@fbxsdk_2011_3_1@@@2@XZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: enum fbxsdk_2011_3_1::KFbxLayerElement::EReferenceMode __thiscall fbxsdk_2011_3_1::KFbxLayerElement::GetReferenceMode(void)const " (__imp_?GetReferenceMode@KFbxLayerElement@fbxsdk_2011_3_1@@QBE?AW4EReferenceMode@12@XZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: enum fbxsdk_2011_3_1::KFbxLayerElement::EMappingMode __thiscall fbxsdk_2011_3_1::KFbxLayerElement::GetMappingMode(void)const " (__imp_?GetMappingMode@KFbxLayerElement@fbxsdk_2011_3_1@@QBE?AW4EMappingMode@12@XZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall fbxsdk_2011_3_1::KFbxMesh::GetPolygonVertexNormal(int,int,class fbxsdk_2011_3_1::KFbxVector4 &)const " (__imp_?GetPolygonVertexNormal@KFbxMesh@fbxsdk_2011_3_1@@QBEXHHAAVKFbxVector4@2@@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall fbxsdk_2011_3_1::KFbxVector2::KFbxVector2(void)" (__imp_??0KFbxVector2@fbxsdk_2011_3_1@@QAE@XZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall fbxsdk_2011_3_1::KFbxMesh::GetPolygonVertex(int,int)const " (__imp_?GetPolygonVertex@KFbxMesh@fbxsdk_2011_3_1@@QBEHHH@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall fbxsdk_2011_3_1::KFbxMesh::GetPolygonSize(int)const " (__imp_?GetPolygonSize@KFbxMesh@fbxsdk_2011_3_1@@QBEHH@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall fbxsdk_2011_3_1::KFbxMesh::GetPolygonCount(void)const " (__imp_?GetPolygonCount@KFbxMesh@fbxsdk_2011_3_1@@QBEHXZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall fbxsdk_2011_3_1::KFbxXMatrix::~KFbxXMatrix(void)" (__imp_??1KFbxXMatrix@fbxsdk_2011_3_1@@QAE@XZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class fbxsdk_2011_3_1::KFbxNode * __thiscall fbxsdk_2011_3_1::KFbxNode::GetChild(int)" (__imp_?GetChild@KFbxNode@fbxsdk_2011_3_1@@QAEPAV12@H@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall fbxsdk_2011_3_1::KFbxNode::GetChildCount(bool)const " (__imp_?GetChildCount@KFbxNode@fbxsdk_2011_3_1@@QBEH_N@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: double const (& __thiscall fbxsdk_2011_3_1::KFbxXMatrix::Double44(void)const )[4][4]" (__imp_?Double44@KFbxXMatrix@fbxsdk_2011_3_1@@QBEAAY133$CBNXZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class fbxsdk_2011_3_1::KFbxXMatrix & __thiscall fbxsdk_2011_3_1::KFbxCluster::GetTransformLinkMatrix(class fbxsdk_2011_3_1::KFbxXMatrix &)const " (__imp_?GetTransformLinkMatrix@KFbxCluster@fbxsdk_2011_3_1@@QBEAAVKFbxXMatrix@2@AAV32@@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall fbxsdk_2011_3_1::KFbxXMatrix::KFbxXMatrix(void)" (__imp_??0KFbxXMatrix@fbxsdk_2011_3_1@@QAE@XZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: double * __thiscall fbxsdk_2011_3_1::KFbxCluster::GetControlPointWeights(void)const " (__imp_?GetControlPointWeights@KFbxCluster@fbxsdk_2011_3_1@@QBEPANXZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int * __thiscall fbxsdk_2011_3_1::KFbxCluster::GetControlPointIndices(void)const " (__imp_?GetControlPointIndices@KFbxCluster@fbxsdk_2011_3_1@@QBEPAHXZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall fbxsdk_2011_3_1::KFbxCluster::GetControlPointIndicesCount(void)const " (__imp_?GetControlPointIndicesCount@KFbxCluster@fbxsdk_2011_3_1@@QBEHXZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class fbxsdk_2011_3_1::KFbxNode * __thiscall fbxsdk_2011_3_1::KFbxCluster::GetLink(void)" (__imp_?GetLink@KFbxCluster@fbxsdk_2011_3_1@@QAEPAVKFbxNode@2@XZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: enum fbxsdk_2011_3_1::KFbxCluster::ELinkMode __thiscall fbxsdk_2011_3_1::KFbxCluster::GetLinkMode(void)const " (__imp_?GetLinkMode@KFbxCluster@fbxsdk_2011_3_1@@QBE?AW4ELinkMode@12@XZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class fbxsdk_2011_3_1::KFbxCluster * __thiscall fbxsdk_2011_3_1::KFbxSkin::GetCluster(int)" (__imp_?GetCluster@KFbxSkin@fbxsdk_2011_3_1@@QAEPAVKFbxCluster@2@H@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall fbxsdk_2011_3_1::KFbxSkin::GetClusterCount(void)const " (__imp_?GetClusterCount@KFbxSkin@fbxsdk_2011_3_1@@QBEHXZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class fbxsdk_2011_3_1::KFbxLayerElementUV * __thiscall fbxsdk_2011_3_1::KFbxLayer::GetUVs(enum fbxsdk_2011_3_1::KFbxLayerElement::ELayerElementType)" (__imp_?GetUVs@KFbxLayer@fbxsdk_2011_3_1@@QAEPAVKFbxLayerElementUV@2@W4ELayerElementType@KFbxLayerElement@2@@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class fbxsdk_2011_3_1::KFbxLayer * __thiscall fbxsdk_2011_3_1::KFbxLayerContainer::GetLayer(int)" (__imp_?GetLayer@KFbxLayerContainer@fbxsdk_2011_3_1@@QAEPAVKFbxLayer@2@H@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: double & __thiscall fbxsdk_2011_3_1::KFbxVector4::operator[](int)" (__imp_??AKFbxVector4@fbxsdk_2011_3_1@@QAEAANH@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class fbxsdk_2011_3_1::KFbxDeformer * __thiscall fbxsdk_2011_3_1::KFbxGeometry::GetDeformer(int)const " (__imp_?GetDeformer@KFbxGeometry@fbxsdk_2011_3_1@@QBEPAVKFbxDeformer@2@H@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class fbxsdk_2011_3_1::KFbxVector4 & __thiscall fbxsdk_2011_3_1::KFbxVector4::operator=(class fbxsdk_2011_3_1::fbxVectorTemplate3<double> const &)" (__imp_??4KFbxVector4@fbxsdk_2011_3_1@@QAEAAV01@ABV?$fbxVectorTemplate3@N@1@@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class fbxsdk_2011_3_1::KFbxNode * __thiscall fbxsdk_2011_3_1::KFbxNode::GetParent(void)" (__imp_?GetParent@KFbxNode@fbxsdk_2011_3_1@@QAEPAV12@XZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall fbxsdk_2011_3_1::KFbxVector4::KFbxVector4(void)" (__imp_??0KFbxVector4@fbxsdk_2011_3_1@@QAE@XZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class fbxsdk_2011_3_1::KFbxNodeAttribute * __thiscall fbxsdk_2011_3_1::KFbxNode::GetNodeAttribute(void)" (__imp_?GetNodeAttribute@KFbxNode@fbxsdk_2011_3_1@@QAEPAVKFbxNodeAttribute@2@XZ) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: bool __thiscall fbxsdk_2011_3_1::KFbxImporter::Import(class fbxsdk_2011_3_1::KFbxDocument *,bool)" (__imp_?Import@KFbxImporter@fbxsdk_2011_3_1@@QAE_NPAVKFbxDocument@2@_N@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static class fbxsdk_2011_3_1::KFbxScene * __cdecl fbxsdk_2011_3_1::KFbxScene::Create(class fbxsdk_2011_3_1::KFbxSdkManager *,char const *)" (__imp_?Create@KFbxScene@fbxsdk_2011_3_1@@SAPAV12@PAVKFbxSdkManager@2@PBD@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static class fbxsdk_2011_3_1::KFbxImporter * __cdecl fbxsdk_2011_3_1::KFbxImporter::Create(class fbxsdk_2011_3_1::KFbxSdkManager *,char const *)" (__imp_?Create@KFbxImporter@fbxsdk_2011_3_1@@SAPAV12@PAVKFbxSdkManager@2@PBD@Z) referenced in function "public: class Ovgl::Scene * __thiscall Ovgl::Instance::CreateScene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Ovgl::Matrix44 *,unsigned long)" (?CreateScene@Instance@Ovgl@@QAEPAVScene@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVMatrix44@2@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static class fbxsdk_2011_3_1::KFbxSdkManager * __cdecl fbxsdk_2011_3_1::KFbxSdkManager::Create(void)" (__imp_?Create@KFbxSdkManager@fbxsdk_2011_3_1@@SAPAV12@XZ) referenced in function "class Ovgl::Instance * __cdecl Ovgl::Create(unsigned long)" (?Create@Ovgl@@YAPAVInstance@1@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol __imp__NxCreateControllerManager referenced in function "class Ovgl::Instance * __cdecl Ovgl::Create(unsigned long)" (?Create@Ovgl@@YAPAVInstance@1@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol __imp__NxGetCookingLib referenced in function "class Ovgl::Instance * __cdecl Ovgl::Create(unsigned long)" (?Create@Ovgl@@YAPAVInstance@1@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol __imp__NxCreatePhysicsSDK referenced in function "class Ovgl::Instance * __cdecl Ovgl::Create(unsigned long)" (?Create@Ovgl@@YAPAVInstance@1@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol __imp__X3DAudioInitialize referenced in function "class Ovgl::Instance * __cdecl Ovgl::Create(unsigned long)" (?Create@Ovgl@@YAPAVInstance@1@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol _D3DX10CreateSprite@12 referenced in function "class Ovgl::Instance * __cdecl Ovgl::Create(unsigned long)" (?Create@Ovgl@@YAPAVInstance@1@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol _D3D10CreateDevice@24 referenced in function "class Ovgl::Instance * __cdecl Ovgl::Create(unsigned long)" (?Create@Ovgl@@YAPAVInstance@1@K@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol _ov_read referenced in function "public: class Ovgl::AudioBuffer * __thiscall Ovgl::Instance::CreateAudioBuffer(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?CreateAudioBuffer@Instance@Ovgl@@QAEPAVAudioBuffer@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol _ov_pcm_total referenced in function "public: class Ovgl::AudioBuffer * __thiscall Ovgl::Instance::CreateAudioBuffer(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?CreateAudioBuffer@Instance@Ovgl@@QAEPAVAudioBuffer@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol _ov_info referenced in function "public: class Ovgl::AudioBuffer * __thiscall Ovgl::Instance::CreateAudioBuffer(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?CreateAudioBuffer@Instance@Ovgl@@QAEPAVAudioBuffer@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol _ov_open_callbacks referenced in function "public: class Ovgl::AudioBuffer * __thiscall Ovgl::Instance::CreateAudioBuffer(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?CreateAudioBuffer@Instance@Ovgl@@QAEPAVAudioBuffer@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol _D3DX10CreateShaderResourceViewFromFileW@24 referenced in function "public: void __thiscall Ovgl::Effect::set_texture(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?set_texture@Effect@Ovgl@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall fbxsdk_2011_3_1::KFbxVector2::KFbxVector2(class fbxsdk_2011_3_1::KFbxVector2 const &)" (__imp_??0KFbxVector2@fbxsdk_2011_3_1@@QAE@ABV01@@Z) referenced in function "public: class fbxsdk_2011_3_1::KFbxVector2 __thiscall fbxsdk_2011_3_1::KFbxLayerElementArrayTemplate<class fbxsdk_2011_3_1::KFbxVector2>::GetAt(int)const " (?GetAt@?$KFbxLayerElementArrayTemplate@VKFbxVector2@fbxsdk_2011_3_1@@@fbxsdk_2011_3_1@@QBE?AVKFbxVector2@2@H@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall fbxsdk_2011_3_1::KFbxObject::GetSrcObjectCount(class fbxsdk_2011_3_1::kFbxClassId)const " (__imp_?GetSrcObjectCount@KFbxObject@fbxsdk_2011_3_1@@QBEHVkFbxClassId@2@@Z) referenced in function "int __cdecl fbxsdk_2011_3_1::KFbxGetSrcCount<class fbxsdk_2011_3_1::KFbxNode>(class fbxsdk_2011_3_1::KFbxObject const *,class fbxsdk_2011_3_1::KFbxNode const *)" (??$KFbxGetSrcCount@VKFbxNode@fbxsdk_2011_3_1@@@fbxsdk_2011_3_1@@YAHPBVKFbxObject@0@PBVKFbxNode@0@@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class fbxsdk_2011_3_1::kFbxClassId fbxsdk_2011_3_1::KFbxNode::ClassId" (__imp_?ClassId@KFbxNode@fbxsdk_2011_3_1@@2VkFbxClassId@2@A)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class fbxsdk_2011_3_1::KFbxObject * __thiscall fbxsdk_2011_3_1::KFbxObject::GetSrcObject(class fbxsdk_2011_3_1::kFbxClassId,int)const " (__imp_?GetSrcObject@KFbxObject@fbxsdk_2011_3_1@@QBEPAV12@VkFbxClassId@2@H@Z) referenced in function "class fbxsdk_2011_3_1::KFbxNode * __cdecl fbxsdk_2011_3_1::KFbxGetSrc<class fbxsdk_2011_3_1::KFbxNode>(class fbxsdk_2011_3_1::KFbxObject const *,int)" (??$KFbxGetSrc@VKFbxNode@fbxsdk_2011_3_1@@@fbxsdk_2011_3_1@@YAPAVKFbxNode@0@PBVKFbxObject@0@H@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class fbxsdk_2011_3_1::kFbxClassId fbxsdk_2011_3_1::KFbxSkin::ClassId" (__imp_?ClassId@KFbxSkin@fbxsdk_2011_3_1@@2VkFbxClassId@2@A)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: bool __thiscall fbxsdk_2011_3_1::KFbxProperty::Get(void *,enum fbxsdk_2011_3_1::EFbxType)const " (__imp_?Get@KFbxProperty@fbxsdk_2011_3_1@@QBE_NPAXW4EFbxType@2@@Z) referenced in function "bool __cdecl fbxsdk_2011_3_1::KFbxGet<class fbxsdk_2011_3_1::fbxVectorTemplate3<double> >(class fbxsdk_2011_3_1::KFbxProperty const &,class fbxsdk_2011_3_1::fbxVectorTemplate3<double> &)" (??$KFbxGet@V?$fbxVectorTemplate3@N@fbxsdk_2011_3_1@@@fbxsdk_2011_3_1@@YA_NABVKFbxProperty@0@AAV?$fbxVectorTemplate3@N@0@@Z)
1>ovgl_d.lib(OvglInstance.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: bool __thiscall fbxsdk_2011_3_1::KFbxLayerElementArray::GetAt(int,void * *,enum fbxsdk_2011_3_1::EFbxType)const " (__imp_?GetAt@KFbxLayerElementArray@fbxsdk_2011_3_1@@QBE_NHPAPAXW4EFbxType@2@@Z) referenced in function "public: bool __thiscall fbxsdk_2011_3_1::KFbxLayerElementArray::GetAt<class fbxsdk_2011_3_1::KFbxVector2>(int,class fbxsdk_2011_3_1::KFbxVector2 *)const " (??$GetAt@VKFbxVector2@fbxsdk_2011_3_1@@@KFbxLayerElementArray@fbxsdk_2011_3_1@@QBE_NHPAVKFbxVector2@1@@Z)
1>ovgl_d.lib(OvglScene.obj) : error LNK2019: unresolved external symbol __imp__X3DAudioCalculate referenced in function "public: void __thiscall Ovgl::Scene::Update(unsigned long)" (?Update@Scene@Ovgl@@QAEXK@Z)
1>ovgl_d.lib(OvglScene.obj) : error LNK2019: unresolved external symbol __imp__NxGetUtilLib referenced in function "public: void __thiscall NxJointDesc::setGlobalAnchor(class NxVec3 const &)" (?setGlobalAnchor@NxJointDesc@@QAEXABVNxVec3@@@Z)
1>ovgl_d.lib(OvglMath.obj) : error LNK2019: unresolved external symbol _D3DXMatrixInverse@12 referenced in function "class Ovgl::Matrix44 __cdecl Ovgl::MatrixInverse(class Ovgl::Vector4 *,class Ovgl::Matrix44 *)" (?MatrixInverse@Ovgl@@YA?AVMatrix44@1@PAVVector4@1@PAV21@@Z)
1>ovgl_d.lib(OvglMath.obj) : error LNK2019: unresolved external symbol _D3DXMatrixPerspectiveFovLH@20 referenced in function "class Ovgl::Matrix44 __cdecl Ovgl::MatrixPerspectiveLH(float,float,float,float)" (?MatrixPerspectiveLH@Ovgl@@YA?AVMatrix44@1@MMMM@Z)
1>C:\Users\Steven\Documents\My Projects\Ovgl\samples\Ovgl_FPS\Debug\Ovgl_FPS.exe : fatal error LNK1120: 63 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


Any idea why this is happening and how to fix it?
Advertisement
Unfortunately, you must flatten out the library dependencies yourself.

So, if you have libfoo.lib which depends on libbar.lib, and frob.exe ...


foo.exe
|
libfoo.lib
|
libbar.lib


then you have to make the project file of foo.exe like that:


foo.exe
| |
libfoo.lib libbar.lib


If it wouldn't be like this, libraries would grow to monstrous size, as they would have to include the full set of each and every symbol of recursively included libraries. Compilation of libraries would take significantly longer to compile, as for the huge symbol tables, as well as for the possibillity of (indirect) mutual dependencies.

Unfortunately, you must flatten out the library dependencies yourself.

So, if you have libfoo.lib which depends on libbar.lib, and frob.exe ...


foo.exe
|
libfoo.lib
|
libbar.lib


then you have to make the project file of foo.exe like that:


foo.exe
| |
libfoo.lib libbar.lib


If it wouldn't be like this, libraries would grow to monstrous size, as they would have to include the full set of each and every symbol of recursively included libraries. Compilation of libraries would take significantly longer to compile, as for the huge symbol tables, as well as for the possibillity of (indirect) mutual dependencies.


Are you saying any projects using my library would need to link to all the libraries that my library links to? So it other words for someone to use my project they would need to install the DirectX SDK, PhysX SDK, and the FBX SDK?! blink.gif
Hi SteveDeFacto,

Have you linked to your lib as well ?, its under the project properties->link->general i think (bussy installing MVS now as i have just formated my pc).

Hope this Helps and you Fix it,
by the way you said you are makeing an API and that you defined WinMain when youve got it working can you give me more info on how your API works,
becouse im intrigued by what your doing and have kinda wondered how i can make an entry point for my exe that runs through my DLL.
Good Luck! :D

Never say Never, Because Never comes too soon. - ryan20fun

Disclaimer: Each post of mine is intended as an attempt of helping and/or bringing some meaningfull insight to the topic at hand. Due to my nature, my good intentions will not always be plainly visible. I apologise in advance and assure you I mean no harm and do not intend to insult anyone.

Yes.
Alternately, build your library as a DLL rather than a static library.

Alternately, build your library as a DLL rather than a static library.



I didn't think of doing that but I'm not really sure where I'm suppose to put the __declspec(dllexport) command and when I compiled my library I had problems using it. Can someone glance over this header file and tell me if I'm exporting the classes right?



/**
* @file OvglScene.h
* Copyright 2011 Steven Batchelor
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* @brief This Header defines each class that makes up the OvglScene class.
*/

// Forward declare some classes
class NxScene;
class Actor;
class Camera;
class Light;
class Prop;
class Scene;
class Mesh;
class CMesh;
class AudioEmitter;
class AudioVoice;
class Instance;
class Effect;
class Joint;
class Vector3;

namespace Ovgl
{
extern "C"
{
/**
* By setting it as the viewport of a Ovgl::RenderTarget you can render what this camera sees to the render target.
* @brief This class represents a camera within a Ovgl::Scene.
*/
class __declspec(dllexport) Camera
{
public:
/**
* This is a pointer to the scene that this camera was created by and resides in.
*/
Scene* scene;
/**
* This is a pointer to the physics scene object that represents the camera within the scene.
*/
CMesh* cmesh;
/**
* This matrix defines the perspective of the camera.
*/
Matrix44 projMat;
/**
* This is an array of all audio voices that the camera can hear.
*/
std::vector<AudioVoice*> voices;
/**
* Sets the pose of this camera.
* @param matrix The matrix which defines the new pose for this camera.
*/
void setPose( Matrix44* matrix );
/**
* Returns the current pose of the camera.
*/
Matrix44 getPose();
/**
* This function will release control of all memory associated with the camera and it will also remove any reference to it from the scene.
*/
void Release();
};

/**
* @brief This class represents a light within a Ovgl::Scene.
*/
class __declspec(dllexport) Light
{
public:
/**
* This is a pointer to the scene that this light was created by and resides in.
*/
Scene* scene;
/**
* This is a pointer to the physics scene object that represents the light with in the scene.
*/
CMesh* cmesh;
/**
* This is the color of the light that will be cast on objects.
*/
Vector3 color;
/**
* Specifies what type of light is emitted.
*/
DWORD type;
/**
* Sets the pose of this light.
* @param matrix The matrix which defines the new pose for this light.
*/
void setPose( Matrix44* matrix );
/**
* Returns the current pose of this light.
*/
Matrix44 getPose();
/**
* This function will release control of all memory associated with the light and it will also remove any reference to it from the scene.
*/
void Release();
};

/**
* Props are dynamic objects such as vehicles, rag dolls, and any other objects that react to kinetic forces within the scene.
* @brief This class represents a prop within a Ovgl::Scene.
*/
class __declspec(dllexport) Prop
{
public:
/**
* This is a pointer to the scene that this prop was created by and resides in.
*/
Scene* scene;
/**
* The mesh that is displayed for this prop.
*/
Mesh* mesh;
/**
* List of bones that are used to distort the mesh that is displayed for the prop.
*/
std::vector<CMesh*> bones;
/**
* List of effects that are used for each subset of the mesh.
*/
std::vector<Effect*> subsets;
/**
* List of matrices that are taken from the bones and can be passed directly to the shaders to be rendered.
*/
std::vector<Matrix44> matrices;
/**
* List of joints that are holding together the bones of this prop.
*/
std::vector<Joint*> joints;
/**
* Used by Ovgl::Scene to update the bone orientations that are displayed to the Ovgl::RenderTarget. This function will recursivly apply the offset of a parent bone to all child bones and their children until it has gone through the entire tree.
* @param bone Index of the first bone to update. Generally the meshes root_bone.
* @param matrix This matrix is the amount of offset that is to be applied to the bone.
*/
void Update( int bone, Matrix44* matrix );
/**
* This function creates the joints that fuse together bones within the prop. This function will recursivly joints together a parent bone to all child bones and their children until it has gone through the entire tree.
* @param bone Index of first bone to joint to it's children. This should generally be the meshes root_bone.
*/
void CreateJoints( DWORD bone );
/**
* Sets the pose of this prop.
* @param matrix The matrix which defines the new pose for this prop.
*/
void setPose( Matrix44* matrix );
/**
* Returns the current pose of this prop.
*/
Matrix44 getPose();
/**
* This function will release control of all memory associated with the prop and it will also remove any reference to it from the scene.
*/
void Release();
};

/**
* Objects are static and cannot react to kinetic forces within the scene.
* @brief This class represents a object within a Ovgl::Scene.
*/
class __declspec(dllexport) Object
{
public:
/**
* This is a pointer to the scene that this object resides in.
*/
Scene* scene;
/**
* This is a pointer to the physics object that represents this object within the scene.
*/
CMesh* cmesh;
/**
* The mesh that is displayed for this object.
*/
Mesh* mesh;
/**
* List of effects that are used for each subset of the mesh.
*/
std::vector<Effect*> subsets;
/**
* Sets the pose of this object.
* @param matrix The matrix which defines the new pose for this object.
*/
void setPose( Matrix44* matrix );
/**
* Returns the current pose of this object.
*/
Matrix44 getPose();
/**
* This function will release control of all memory associated with the object and it will also remove any reference to it from the scene.
*/
void Release();
};

/**
* Emitters act as a reference points that provides the location and oriantation of the source of an emission for other classes such as Ovgl::AudioInstance and Ovgl::ParticleInstance.
* @brief This class represents a emitter within a Ovgl::Scene.
*/
class __declspec(dllexport) Emitter
{
public:
/**
* This is a pointer to the scene that this emitter was created by and resides in.
*/
Scene* scene;
/**
* This is a pointer to the physics scene object that represents the emitter with in the scene.
*/
CMesh* cmesh;
/**
* Sets the pose of this emitter.
* @param matrix The matrix which defines the new pose for this emitter.
*/
void setPose( Matrix44* matrix );
/**
* Returns the current post of this emitter.
*/
Matrix44 getPose();
/**
* This function will release control of all memory associated with the emitter and it will also remove any reference to it from the scene.
*/
void Release();
};

/**
* Scenes house all the 3D objects that you will see on the screen such as lights, cameras, props, and actors. They also maintain the physics scene and objects as well.
* @brief This class contains a set of objects that make up a 3D scene.
*/
class __declspec(dllexport) Scene
{
public:
/**
* This is a pointer to the Ovgl instance that created the scene.
*/
Instance* Inst;
/**
* This is a pointer to the PhysX scene.
*/
NxScene* physics_scene;
/**
* This array contains all static objects on the set.
*/
std::vector<Object*> objects;
/**
* This array contains all lights within the scene..
*/
std::vector<Light*> lights;
/**
* This array contains all cameras within the scene..
*/
std::vector<Camera*> cameras;
/**
* This array contains all props within the scene..
*/
std::vector<Prop*> props;
/**
* This array contains all actors within the scene..
*/
std::vector<Actor*> actors;
/**
* This array contains all emitters within the scene..
*/
std::vector<Emitter*> emitters;
/**
* This function adds a Ovgl::Light to the scene.
* @param matrix The matrix which defines the the starting pose of the light.
* @param color The color of the light.
* @param type This option can be used to specify what type of light to emit. There are three types Point Light, Spot Light, and a Directional Light.
*/
Light* CreateLight( Matrix44* matirx, Vector4* color );
/**
* This function adds a Ovgl::Camera to the scene.
* @param matrix The matrix which defines the the starting pose of the camera.
*/
Camera* CreateCamera( Matrix44* view_matrix );
/**
* This function adds a Ovgl::Actor to the scene.
* @param mesh The mesh object that will be displayed for the actor.
* @param radius The radius of the actor's capsule within the physics scene which is the distance at which a character comes in contact with objects in the character's vertical plane.
* @param height The hieght of the actor's capsule within the physics scene which is the distance at which a character comes in contact with objects in the character's horizontal plane.
* @param matrix The matrix which defines the the starting pose of the actor.
*/
Actor* CreateActor( Mesh* mesh, float radius, float height, Matrix44* matirx );
/**
* This function adds a Ovgl::Prop to the scene.
* @param mesh The mesh that will be displayed for the prop.
* @param matrix The matrix which defines the the starting pose of the prop.
*/
Prop* CreateProp( Mesh* mesh, Matrix44* matrix);
/**
* This function adds a Ovgl::Prop to the scene.
* @param mesh The mesh that will be displayed for the object.
* @param matrix The matrix which defines the pose of the object.
*/
Object* CreateObject( Mesh* mesh, Matrix44* matrix);
/**
* This function adds a Ovgl::Emitter to the scene.
* @param matrix The matrix which defines the starting pose of the emitter.
*/
Emitter* CreateEmitter( Matrix44* matrix );
/**
* This function updates the animations, audio emition points, and the physics objects of the scene.
* @param update_time The amount of time that has passed since the last scene update.
*/
void Update( DWORD update_time );
/**
* This function will release control of all memory associated with the scene and any objects within it. It will also remove any reference to it from the Ovgl::Instance.
*/
void Release();
};
}
}
this is what im useing to export stuff from my dll right now
class MyClass
{
public:
__declspec(dllexport) MyClass();
};

you can alternatively do this
__declspec(dllexport) class YourClass
{

}; // and that will export all the stuff from your class

Hope this Helps,

annd can you PlEASE PM me or somthing as i would REALLY like to know if defineing the entrypoint in your lib/DLL
works :)

Never say Never, Because Never comes too soon. - ryan20fun

Disclaimer: Each post of mine is intended as an attempt of helping and/or bringing some meaningfull insight to the topic at hand. Due to my nature, my good intentions will not always be plainly visible. I apologise in advance and assure you I mean no harm and do not intend to insult anyone.


this is what im useing to export stuff from my dll right now
class MyClass
{
public:
__declspec(dllexport) MyClass();
};

you can alternatively do this
__declspec(dllexport) class YourClass
{

}; // and that will export all the stuff from your class

Hope this Helps,

annd can you PlEASE PM me or somthing as i would REALLY like to know if defineing the entrypoint in your lib/DLL
works :)


I propose to post any solution in this thread. PM kills the purpose of this forum and makes the whole thread absurd.
I just compiled it as a DLL like SiCrane suggested.

This topic is closed to new replies.

Advertisement