30.09.2013, 02:51
Boas, tenho recebido mensagens aqui e ali a respeito de plug-ins, normalmente acabam por ser dъvidas semelhantes, ou besteiras simples...
Nгo vi atй agora uma dъvida que se relacionasse a sintaxe da linguagem C++, mas na maioria dos casos sгo:
Problemas com o modulo de definiзгo,
problemas com linkagem,
problemas com exportaзгo,
coisas do tipo...
Para isso eu estou criando um tуpico mais completo pra dar introduзгo a plug-ins e explicar pra vocкs mais ou menos como ficaria o funcionamento(teуrico e prбtico) do mesmo, eu ia fazer um vнdeo sу que o Camtasia expirou, entгo atй eu baixar um novo aqui por enquanto, vou deixar esse OFF para resposta dos problemas citados acima.
Para quem leu e nгo conseguiu entender direito o tуpico "Guia de desenvolvimento de plug-ins" feito pelo Kyosaur
modulos de definiзгo sгo utilizados para fazer toda a exportaзгo dos cуdigos que queremos linkar ao nosso projeto, como citado no tуpico tambйm, outro detalhe importante й que os modulos.def sгo exclusividade do Visual Studio.
Nesse tipo de arquivo vocк pode fazer um escopo gigante de cуdigo para determinada finalidade, como trabalhar com stack, heap, sections, etc...
Como a nossa finalidade й apenas exportar algumas funзхes do AMX, utilizamos apenas a funзгo 'EXPORTS'
para fazer a linkagem AMX -> Plugin.
Quando vocк cria o .def, em quase 100% dos casos o VS jб automaticamente o define como modulo de definiзгo padrгo da dll, em alguns casos algumas pessoas estгo tendo problemas nessa parte, ou nгo exportam a funзгo correta ou acabam que mexendo e alterando sem querer o modulo de definiзгo da dll.
o modulo й simples, vocк cria o arquivo.def, e inseri as exportaзхes necessбrias para utilizar no seu plug-in, nгo precisa mexer em mais nada.
Outro problema que gerou a maioria das dъvidas que eu vi, foi a respeito da linkagem, como vocк liga o SDK ao plug-in, algumas pessoas metem o sdk na pasta do plug-in por isto fica, e quando vгo ver lhe volta erros do tipo.
Isso й outra coisa que pode ser simplesmente resolvida deixando que o Visual Studio faзa o trabalho pesado, os passos sгo simples.
Quando vocк tem seu projeto de DLL criado, vocк inseri a pasta da SDK dentro da pasta do plug-in, vai ao VS(Visual Studio) e cria o mesmo como item existente.
vocк cria a pasta com nome 'SDK' e depois
Projeto -> Add -> Existing Item
E ai vocк adiciona os itens do SDK na pasta SDK criada dentro do projeto do Visual Studio.
Com isto o erros citados acima sгo solvidos.
Como foi citado, na maioria das vezes as pessoas estгo tendo problemas por nгo saber lidar muito com o Visual Studio, entгo nada que nгo seja simples de se resolver...
Eu estarei lanзando um tutorial mais completo com um vнdeo se possнvel, este tуpico quero deixar para dъvidas do gкnero.
Nгo vi atй agora uma dъvida que se relacionasse a sintaxe da linguagem C++, mas na maioria dos casos sгo:
Problemas com o modulo de definiзгo,
problemas com linkagem,
problemas com exportaзгo,
coisas do tipo...
Para isso eu estou criando um tуpico mais completo pra dar introduзгo a plug-ins e explicar pra vocкs mais ou menos como ficaria o funcionamento(teуrico e prбtico) do mesmo, eu ia fazer um vнdeo sу que o Camtasia expirou, entгo atй eu baixar um novo aqui por enquanto, vou deixar esse OFF para resposta dos problemas citados acima.
Para quem leu e nгo conseguiu entender direito o tуpico "Guia de desenvolvimento de plug-ins" feito pelo Kyosaur
modulos de definiзгo sгo utilizados para fazer toda a exportaзгo dos cуdigos que queremos linkar ao nosso projeto, como citado no tуpico tambйm, outro detalhe importante й que os modulos.def sгo exclusividade do Visual Studio.
Nesse tipo de arquivo vocк pode fazer um escopo gigante de cуdigo para determinada finalidade, como trabalhar com stack, heap, sections, etc...
Como a nossa finalidade й apenas exportar algumas funзхes do AMX, utilizamos apenas a funзгo 'EXPORTS'
para fazer a linkagem AMX -> Plugin.
Quando vocк cria o .def, em quase 100% dos casos o VS jб automaticamente o define como modulo de definiзгo padrгo da dll, em alguns casos algumas pessoas estгo tendo problemas nessa parte, ou nгo exportam a funзгo correta ou acabam que mexendo e alterando sem querer o modulo de definiзгo da dll.
o modulo й simples, vocк cria o arquivo.def, e inseri as exportaзхes necessбrias para utilizar no seu plug-in, nгo precisa mexer em mais nada.
Outro problema que gerou a maioria das dъvidas que eu vi, foi a respeito da linkagem, como vocк liga o SDK ao plug-in, algumas pessoas metem o sdk na pasta do plug-in por isto fica, e quando vгo ver lhe volta erros do tipo.
Код:
unresolved external symbol _amx_Register referenced in function _AmxLoad@4 unresolved external symbol "void * pAMXFunctions" (?pAMXFunctions@@3PAXA)
Quando vocк tem seu projeto de DLL criado, vocк inseri a pasta da SDK dentro da pasta do plug-in, vai ao VS(Visual Studio) e cria o mesmo como item existente.
Imagem:

Projeto -> Add -> New filter
vocк cria a pasta com nome 'SDK' e depois

E ai vocк adiciona os itens do SDK na pasta SDK criada dentro do projeto do Visual Studio.

Como foi citado, na maioria das vezes as pessoas estгo tendo problemas por nгo saber lidar muito com o Visual Studio, entгo nada que nгo seja simples de se resolver...
Eu estarei lanзando um tutorial mais completo com um vнdeo se possнvel, este tуpico quero deixar para dъvidas do gкnero.