Ir para conteúdo
Fórum Script Brasil

Denis Bittencourt Muniz

Veteranos
  • Total de itens

    834
  • Registro em

  • Última visita

Tudo que Denis Bittencourt Muniz postou

  1. Hum.... entendo. Olha, programo apenas para Windows. Dê uma pesquisada sobre os recursos que o Linux oferece de API sobre redes. Ah! Tente verificar também, uso da biblioteca de programação usando socket's de rede ("socket.h", se não me engano). Infelizmente, as bibliotecas padrões do C/C++ não dão suporte para interação com redes, até onde sei. Infelizmente, não posso te ajudar. Falows!
  2. -> Mas é apenas projetos do tipo "Application"? -> E outros tipos de projetos, qual é o comportamento apresentado? -> Você consegue compilar um simples arquivo C, CPP, H ou HPP? (pergunto isso, pois talvez possa ser as bibliotecas do C++ Builder que estejam com incompatibilidade com o Windows Vista (principalmente bibliotecas de nível mais baixo como, por exemplo, a biblioteca "Windows.h")). Falows! Aguardando respostas!
  3. http://geocities.yahoo.com.br/denis_bittencourt/oopcmais.zip "C++ como uma linguagem de programação orientada a objetos", por André Augusto Cesta. Tutorial de 194 páginas! Muito bom! Aborda a orientação a objetos em C++, do simples ao avançado! Eu vou estudar a possibilidade de ler esse tutorial inteiro, página por página, pois há muitos conceitos de O.O em C++ que não conheço. Falows!
  4. Como o icoN falou, o tipo de dados está errado, pois, o tipo 'int' serve para armazenar números inteiros. Veja os tipos de dados mais comuns na linguagem C: Certo? Qualquer coisa estamos aí! Falows!
  5. Caso esteja usando a plataforma Windows, dê uma olhada na função da API do Windows 'UrlDownloadToFile'. Referência, no site AllApi: http://allapi.mentalis.org/apilist/URLDownloadToFile.shtml (exemplo/codificação em Visual Basic 6) Na biblioteca 'Windows.h', você não achará essa função préviamente declarada. Declare a mesma, da seguinte maneira: extern "C" __declspec(dllimport) int URLDownloadToFileA(int pCaller, char* szURL, char* szFileName, int dwReserved, int lpfnCB); Dê uma pesquisada nos artigos/tutoriais da seção dicas aqui dessa sala para mais detalhes, mas qualquer coisa, não deixe de perguntar, certo? Um pequeno exemplo de download, utilizando essa função: int main() { URLDownloadToFileA(0, "http://google.com/", "C:\\Temp.txt", 0, 0); //Grava o conteúdo HTML da página principal do Google em um arquivo 'Temp.txt', no drive C. return 0; } Ah! Lembrando que essa função está declarada na DLL 'urlmon.dll', ou seja, você deve adicionar referência a essa DLL, para o compilador reconhecer a chamada. Caso utilize o GCC, utilize a seguinte linha de comando: -name "C:\WINDOWS\system32\urlmon.dll" (lembrando que estou usando o Windows XP e o caminho da biblioteca pode variar). Qualquer coisa estamos aí! Falows!
  6. Dependency Walkerhttp://www.dependencywalker.com/ Descrição: simplesmente perfeito :)! Dependency Walker é um utilitário para escanear informações de módulos Windows (exe, dll, ocx, sys, etc.). Com esse, posso ver dependências de DLL's de um determinado programa, ver quais funções estão acessiveis em detrminado módulo, ou seja, funções chamaveis, contidas no módulo pesquisado (mostra até os parâmetros usados pelas funções disponíveis! Legal! :) Interessante para casos onde a documentação de tal DLL é precária, não?). E muito mais, muito mais mesmo, pelo pouco que li. Até onde lembro, esse era um utilitário do Visual Studio 6, mas eu achei esse no site indicado acima. Bom, aconselho que dêem uma olhada, pois pretendo fazer muitos artigos sobre DLL's em C/C++ (me empolguei com esse assunto de DLL xD), no qual o Dependency Walker seria de grande utilidade. Falows!
  7. Um bom tutorial! Compiladores C, após fazerem a compilação, mantêm os nomes das funções intactas. Porém, compiladores C++ não (isso é preciso, para fazer adaptação de funcionamento na estrutura interna do compilador, eu acho). Ah! Isso é chamado de convenções de linkedição. Atualmente, os valores aceitos por "extern" são: -> "C" : nomenclatura de funções C -> "C++" : nomenclatura de funções C++ Lembrando que: os dizeres, presente aqui, são válidos apenas para C++. Em C, até onde eu saiba, a palavra-chave "extern" server apenas para referenciar variáveis/funções externas (globais) a um determinado escopo. Indica para o compilador tornar visível essa função/classe, ou seja, cria uma interface, onde, uma DLL ou um programa, possa usá-lo posteriormente. Se eu não me engano, isso até acaba com o problema da chata utilização de lib (.a) ou código-objeto (.o) para reaproveitação de código. Na verdade, o Rafael usou um recurso interessante: carregamento dinâmico, feito através de algumas funções da API do Windows (inclusive, muitas dessas funções, estão na declaradas biblioteca Windows.h). Isso fará o seguinte: carregará a DLL na memória, usará a função requerida e descarregará a DLL da memória. Muito interessante, pois, caso você mande seu compilador fazer uma referência para a DLL requerida, no momento da compilação, isso fará com que seu programa carregue a DLL, antes do iniciamento dele mesmo, e, só descarregará a DLL, após o término do seu programa, ou seja, olha a melhoria de performance obtida, apesar do aumento da complexidade e a perda de portabilidade de código-fonte para outras plataformas como, Linux, por exemplo (no caso, você teria que descobrir alguma função da API do Linux para o equivalente feito). Falows! P.S: Rafael, me desculpe, por não te respondido sua pergunta, no meu artigo sobre DLL's. Não tive tempo, só respondi hoje, pois estive afastado do fórum. http://en.wikipedia.org/wiki/Name_mangling Uma explicação melhor sobre o que eu disse (em inglês). Resumindo, é uma técnica usada para obtenção de nomes únicos para identificadores. Essa técnica é usada em linguagens modernas, principalmente, se suportam O.O . Por exemplo: class A { void A() { return; } void A(int a) { return; } }; Como o compilador vai distinguir um método de outro? Pois, temos nomes (identificadores) iguais! Se eu não me engano (li muito pouco, pois além de não saber muito inglês, to "pingando" de sono), na codificação feita, ele guardará outros dados como, por exemplo, o número de parâmetros. Falows! Espero que leiam!
  8. http://msdn2.microsoft.com/pt-br/visualc/default.aspx Visual C++ Developer Center, provê exemplos, vídeos, artigos, documentação (inclusive do Managed C++ 7.1 e 8.0), etc... Aproveitem! Falows!
  9. Ah sim! Existe isso em .Net! Lembrei agora, pois, nunca pensei que fosse "a mesma serialização" que falamos em .Net (pensei que esse termo se referia a "outros 500") Obrigado!
  10. Gostei da explicação! Muito boa! Mas agora, só uma pergunta: o que são serializadores? Falows!
  11. A skin do fórum ficou bem legal mesmo! Os prêmios também xD! Falows!
  12. O post acima pode ser considerado uma mentira, em partes... rsrsrsr... já que, pouco tempo depois do tópico acima, eu fiquei de licença do cargo moderador no fórum. Voltei! (alguém ficou feliz? xD) Mas, a promesa de escrever vários artigos, não será cumprida, já que, mesmo sobrando um pouco de tempo para acessar o fórum, não é o suficiente para a escrita de um artigo/tutorial de quanlidade. Peço contribuíção dos membros para escrita de artigos/tutoriais, já que, infelizmente, eu terei pouco tempo para escrever (alias, é um direito seu como membro poder postar um artigo/tutorial, desde que não desrespeite nenhuma regra do fórum ;)). Ah! Também a contribuição do moderador, também dessa sala, Jonas de Abreu, que, sinceramente, parece ter um conhecimento sobre C/C++ maior que o meu. Espero aprender muito com ele. Bom, é isso aí! Falows!
  13. Opa! Fala galera! Só alegria, talvez hoje dê para mim moderar o fórum um pouco \o/ Uma curiosidade: Em VB.net, o assembly Microsoft.VisualBasic é OBRIGATÓRIO, ou seja, existe maneira de usar o compilador sem usar o assembly citado (nem se for por linha de comando)? No caso, gostaria de não usar as antigas funções (por exemplo: IsDate) do Visual Basic 6 (nem venham criticar <_< , prefiro usar as classes do .Net, mas retirando referência a esse assembly, eu "obrigo" a equipe programar usando apenas as classes do Framework, apesar também que, usar as antigas funções do VB6, não é considerado erro ou forma depreciada, segundo a documentação da Microsoft). Mas, enfim, o motivo principal: curiosidade. P.S: Vida eterna ao C# e Managed C++ \o/ ! xD Falows!
  14. Olá galera! Estou construíndo um projeto Windows Forms, e surgiu a necessidade de usar um componente COM/ActiveX (.ocx). Pois bem, esse componente é importado pelo VBExpress sem problemas e algumas propriedades como, por exemplo, BackColor ou outras relativas a cores funcionam. Porém, (tinha que dar problema né! O m*rda de área essa que nós trabalhamos xD) a propriedade que liga o componente com uma fonte de dados não funciona! Nem via código! Já tentei usar um DataTable... e não deu certo. O tipo da propriedade em questão é ICursor. Lembrando que, no Visual Basic 6, funcionava, usando como valor para a propriedade um objeto (controle) Data. Alguém tem alguma solução? Há um equivalente para a interface ICursor? Falows!
  15. OK, irei fazer o teste! Obrigado! Falows!
  16. Hum... OK. Realmente, se eu usar ByVal, o valor não será alterado, já que na atribuição de uma String constante ao parâmetro, eu estaria modificando para qual objeto que o parâmetro em questão iria apontar e isso não é permitido em passagem por valor. A devida confusão foi feita pelo fato de String não ter uma propriedade de escrita, na qual eu pudesse verificar e, assim, confundi o próprio valor (constantes, digamos) String. Muito obrigado Graymalkin! Falows!
  17. Response.Write(Date.Now.Year) 'Visual Basic Response.Write(DateTime.Now.Year); //C# certo? Falows!
  18. Olá galera! Tudo bom? (eu já to +/-, xD) Olha, o negócio é o seguinte: Estou desenvolvendo um componente para consultas ao banco de dados. Terá um ComboBox com os campos de consulta, um TextBox para o valor (parâmetro) do usuário e um DataGridView, para exibição dos dados. Até aí, tudo bem! Estou usando um UserControl como base. Quando vou definir uma propriedade (tem que ser propriedade, já que quero que a mesma, futuramente, seja parte da Smart Tag do meu componente), eu não sei como dispor a mesma... ( :P , eu sei declarar uma propriedade sim! xD) estranho? Explicando melhor: Fiz uma estrutura chamada Field, contendo três propriedades: Rótulo (descrição para o usuário), Nome (nome do campo) e Type (tipo do campo, uma outra história, não importante ao caso). Então, criei um campo privado chamado _fields, que é do tipo List(Of Field), ou seja, um generic. Depois, uma propriedade somente-leitura, chamada Fields, que encapsula o maldito campo, _fields. Liguei a propriedade DataSource do ComboBox de campos com a propriedade Fields, mas percibi um detalhe: se após a ligação, ou seja, a execução da linha: "cmbCampo.DataSource=Me.Fields", for adicionado mais um item (Field) a propriedade Fields, o conteúdo (Items) do ComboBox não será atualizado...Resumindo: como faço essa atualização ocorrer. Alias, alguém sugere alguma outra idéia/método para interface de adição/remoção de campos, apesar que tem que ser propriedade, para funcionar com Smart Tags (no caso uma janelinha iria aparecer para a configuração de campos, parecido com a edição da propriedade Items do componente ComboBox). Ajuda? To ficando louco já! Grato desde já! Falows!
  19. Gray??? ... :huh:, você mesmo falou, quando eu iniciava em .Net, que String era um tipo referência... veja a documentação (fonte: MSDN, Visual Basic Reference): <SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public NotInheritable [b]Class[/b] String Implements IComparable, ICloneable, IConvertible, IComparable(Of String), _ IEnumerable(Of String), IEnumerable, IEquatable(Of String) Até mesmo, usei a função 'IsReference' (creio que você deva conhecer) do VB para provar isso! Veja: MsgBox(IsReference(Me.Text)) 'Propriedade Text da classe Form1. Retorna True. Concorda? Falows! P.S: Caso concorde, você tem algo a acrescentar sobre o suposto comportamento por valor por parte do tipo String.
  20. Olá galera! Tudo bem? Que saudades aqui do fórum \o/! Espero estar na atividade aí de novo como moderador, mano, xD! Minha dúvida é a seguinte: Class Tha Private _formulario As New Form() Public Property Formulario() As Form Get Return _formulario End Get Set(ByVal value As Form) _formulario = value End Set End Property End Class ... ... Dim T As New Tha() Dim f As Form f = T.Formulario f.Text = "Denis" MsgBox(T.Formulario.Text) 'Será exibido "Denis", como esperado, já que é um tipo por referência. REM P.S: eu citei a linguagem C#, pois a mesma deve ter o mesmo comportamento, porém o exemplo será apenas em VB.[/codebox] Mas gostaria de fazer uma pergunta bem besta, hauhuah, mas o importante é tirar a dúvida: o único tipo de dados que é referência, mas se comporta (parecido) como tipo de valor seria String (System.String)? Pois no caso acima, eu fiz o teste usando uma propriedade String e tive um comportamento de tipo por valor, ou seja, uma cópia do valor foi feita. Se sim, caso esteja certo essa afrimação sobre o tipo String, teria jeito de construir uma classe que implemente esse comportamento? Bom, rsrsr, não venha com "gambiarras", tipo, criar um indexador (propriedade Default em VB) que clona o objeto, ou algo assim... :) Bom, Falows!
  21. Parabéns! Nosso forum esta de mais! Bacana mesmo!
  22. Olá Jorge, beleza? Infelizmente não tenho mais e nem lembro onde baixei essa apostila. Mas visite nossa área de dicas/tutorias para C/C++, aqui mesmo nessa sala, no topo da sala, e viste o tópico com o título 'Material de estudo', você obterá alguns sites legais sobre C/C++. Falows! Qualquer coisa estamos aí!
  23. Use a função 'GetLocalTime' da API do Windows, encontrada na biblioteca 'Windows.h' Falows!
  24. Mas aí vem o X da questão, já citado pelo Graymalkin: precisa ser em C/C++? Pois, você quer que rode em ambiente WEB. E caso você tenha liberdade de escolha em termo de linguagem: use ASP.net. Pode até longar seus estudos, pois você terá que estudar a linguagem (creio que você não programe em .Net), mas a possibilidade de interação com o usuário/facilidade para montagem da engine irá aumentar, e muito! Falows! Qualquer coisa, estamos aí!
×
×
  • Criar Novo...