Documentando C código da biblioteca ++ / CLI para o uso de c # - melhores ferramentas e práticas? [fechadas]

StackOverflow https://stackoverflow.com/questions/1040479

Pergunta

Eu estou trabalhando em um projeto onde um c ++ / biblioteca cli está sendo usada principalmente a partir de um aplicativo c #.

Existe alguma maneira de fazer os comentários de código em C ++ / CLI visível para c # intellisence dentro visual studio?

Assumindo que não existe, o que seria a melhor maneira de documentar a ++ / code cli c para permitir seu uso mais fácil do c # (e dentro c ++ / CLI é claro)? Qual é a sua opinião sobre comentários XML vs doxygen vs outras ferramentas (que)?

Foi útil?

Solução

eu ter começado a trabalhar como segue:

  1. Use comentários de estilo XML para o seu C ++ / CLI cabeçalho entradas. Isto significa é exigido o comentário XML completo (comentários triple-Slash, tag <summary> no mínimo)

  2. Certifique-se de que a opção C ++ compilador gerar a documentação XML Arquivos está ligado. Isso deve gerar um arquivo XML com a documentação com o mesmo nome que o seu conjunto (MyDll.xml).

  3. Certifique-se de que o C # referências de projeto seu MyDll.dll assembléia onde MyDll.xml também está presente na mesma pasta. Quando você passa o mouse sobre uma referência do conjunto, MS Visual Studio irá carregar a documentação.

Isso funcionou para mim no Visual Studio 2008 em um conjunto construído para .NET 3.5.

Outras dicas

DocXml tem a grande vantagem de ser suportado pelo VS (coloração de sintaxe, intellisense, exportação automática para os arquivos XML). As ferramentas Doxygen pode ler o formato DocXml assim você ainda pode usá-los com este formato também.

Para ajudá-lo a gerar comentários arrumado e precisos Doc com um mínimo de esforço, você pode gostar de verificar os meus suplemento AtomineerUtils . Isso leva a maior parte do trabalho de criar e atualizar comentários formato Qt DocXml, Doxygen, JavaDoc ou, e suporta C, C ++, C ++ / CLI, C #, Java, JavaScript, texto datilografado, JScript, UnrealScript, PHP e Visual código Basic.

Interessante. Depois de tentar vários métodos, é parecido com o intellisense entre um projeto Managed C ++ e C # não funciona.

O exemplo a seguir lhe dará intellisense adequado no C ++ ambiente onde ele é declarado, mas referenciando o objeto em C # mostra nada:

// Gets the value of my ID for the object, which is always 14.
public: virtual property int MyId
{
    int get() { return 14; } 
}

comentários XML não quer trabalhar. Eu acho que este seja um bug, ou requer algo que eu não consigo descobrir. A julgar pela falta de respostas sobre esta questão, talvez um bug.

Quanto geração de documentação, eu recomendo ir o caminho da documentação XML. Doxygen suporta a leitura documentação XML que é quase idêntica à documentação XML padrão para C #. Ele faz tendem a adicionar linhas extras apenas para aberturas e fechamentos de tags, mas é muito mais legível na minha opinião do que a seguinte alternativa doxygen:

//! A normal member taking two arguments and returning an integer value.
/*!
  \param a an integer argument.
  \param s a constant character pointer.
  \return The test results
  \sa Test(), ~Test(), testMeToo() and publicVar()
*/

Você tem razão. Não funciona. A construção C ++ irá adicionar suas informações de IntelliSense para o arquivo mestre .NCB, e você obterá o autocompletar de nomes de métodos, etc. No entanto, você está correto em que você não será capaz de obter o "comentário" descrição sobre cada método, etc .

Você provavelmente vai ter um monte de valor tendo um olhar para Doxygen. E depois olhar para cima Doxygen.NET - que é algo que escreveu para nosso próprio uso que constrói "hierarquias de objeto" a partir das saídas de arquivo XML de Doxygen ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top