BE0033- namespace exist, puplic methods exist, assembly exist

Topics: User Forum
Feb 26, 2013 at 8:20 AM
Hi,
I try to create my documentation with sandcastle in visual studio 2012. I performed already successful a documentation with c# but with c++ I always get the error BE0033. I set the flag for C++XML comments inside the document properties and activated also the private settings inside the Visibility tab. I can not access the API Filter and the namespace summaries to change the settings. If I try I receive the message:
"Unable to build project to obtain API information. Please perform a normal build to identify and correct problem"

The document source is included as XML and dll file. My program works fine but I can't create the documentation. I hope some one of you can help me.

Code - Header:

pragma once

include<vector>

namespace namespace Wave{

///<summary>
///This class specifies the wave height and the wave period.
///</summary>
class Wave{

public:
///<summary>class constructor - initilise the calculation of the the wave height and the wave period</summary>
///<param name="factorPeriod"> wave period coefficients for calculateWave; sequence: lowest to hightest order</param>
///<param name="factorHeight"> wave height coefficients for calculateWave; sequence: lowest to hightest order</param>
///<param name="windVelocity"> wind velocities in m/s</param>
Wave(const std::vector<float> factorPeriod, const std::vector<float> factorHeight, const std::vector<float> windVelocity ): period(windVelocity.size()), height(windVelocity.size()){
    for(size_t i = 0; i < windVelocity.size(); i++){
        period[i] = 0;
        height[i] = 0;
    }
    calculateWave(factorPeriod, factorHeight, windVelocity);
}
///<summary>class constructor - setting wave height and wave period equal zero</summary>
Wave() : height(0), period(0){}

///<summary>copie constructor</summary>
Wave(const Wave&);

///<summary>destructior</summary>
~Wave();

///<returns> wave period [s] depending on the wind velocities</returns>
std::vector<float> getPeriod() const; 

///<returns> wave height [m] depending on the wind velocities</returns>
std::vector<float> getHeight() const;
private:
///<summary> wave period [s] for each wind velocity - same order ans windVelocity  </summary>
std::vector<float> period; 

///<summary> wave height[m] for each wind velocity - same order ans windVelocity  </summary>
std::vector<float> height; 

///<summary> calculatate the wave period and the wave height for each submitted wind velocity</summary>
///<remarks> according the formula h_s(v)=factorHeightd[0]*v^0+factorHeightd[n]*v^n and t_p(h_s)=factorPeriod[0]*h_s^0+factorPeriod[n]*h_s^n </remarks>
///<param name="factorPeriod"> wave period coefficients for calculateWave; sequence: lowest to hightest order</param>
///<param name="factorHeight"> wave height coefficients for calculateWave; sequence: lowest to hightest order</param>
///<param name="windVelocity"> wind velocities in m/s</param>
void calculateWave(const std::vector<float>& factorPeriod, const std::vector<float>& factorHeight, const std::vector<float>& windVelocity);
};
}

Code-cpp:
#include"Wave.h"
#include<math.h>
#include<iostream>

using namespace Wave;


Wave::Wave(const Wave& w) : period(w.period), height(w.height){}
Wave::~Wave(){}

std::vector<float> getPeriod()const{
    return period;
}

std::vector<float> getHeight()const{
    return height;
}

void calculateWave(const std::vector<float>& factorPeriod, const std::vector<float>& factorHeight, const std::vector<float>& windVelocity){

    for(size_t cntVelocity = 0; cntVelocity < windVelocity.size(); ++cntVelocity){  
        for(size_t cntFacH = 0; cntFacH < factorHeight.size(); ++cntFacH){
            height.at(cntVelocity) += (factorHeight.at(cntFacH) * pow(windVelocity.at(cntVelocity), cntFacH));
        }
        for(size_t cntFacP = 0; cntFacP < factorPeriod.size(); ++cntFacP){
            period.at(cntVelocity) += factorPeriod.at(cntFacP) * pow(height.at(cntVelocity), cntFacP);
        }
    }
}

int main(){
    return 1;
}
}
``` Thanks.
Coordinator
Feb 26, 2013 at 3:06 PM
Sandcastle only works on managed code (.NET assemblies). It cannot process native code assemblies. To document them you'll need another tool such as Doxygen.

Eric