Har för mig att det (eventuellt) finns nåt extremt krångligt trick via LoadLibrary, GetProcAddress och CallWindowProc, som jag inte minns på rak arm.
Men, varför vill du inte använda Declare??
6 svar · 289 visningar · startad av Nexus86
Hur gör jag för att köra en dllfunktion skriven i C/C++ utan att deklarera den? Om den inte ska returnera något räcker det ju med
Shell("rundll32 dllfil.dll,funktionsnamn", vbHidden)
men problemet är bara att den ska returnera något. :l
Har för mig att det (eventuellt) finns nåt extremt krångligt trick via LoadLibrary, GetProcAddress och CallWindowProc, som jag inte minns på rak arm.
Men, varför vill du inte använda Declare??
För att användaren av programmet ska kunna skriva plugins i form av antingen ActiveX eller C-dll och för att få det senare att fungera måste jag veta hur jag ska kunna köra DllMain (eller någon annan funktion, har inte bestämt mig än) från en okänd C-dll. :)
OK. Då är mitt heta tips att du implementerar just den funktionaliteten i en separat C-dll (via LoadLibrary, GetProcAddress). Och sen använder denna dll via Declare i din VB-kod. C-dll:en får sen innehålla funktioner som hämtar returvärdena åt dig (på nåt sätt).
Så skulle man kunna göra men du har inget exempel på hur detta skulle kunna se ut i VB eller VC++? :)
Nej, inte just nu, tyvärr. Har kanske nåt hemma ..
Annars hittade google den här: Call API functions by Name, without Declare, v 2.0
(Tyvärr verkar sidan vara nere så du får vänta och hålla tummarna. Jag vet inte heller om den klarar returvärden.)