06.04.2013, 15:20
Quote:
This code:
Код:
#include "..\SDK\amx\amx.h" #include "..\SDK\plugincommon.h" #include "..\SDK\Invoke.h" typedef void (*logprintf_t)(char* format, ...); logprintf_t logprintf; extern void *pAMXFunctions; cell AMX_NATIVE_CALL HelloWorld(AMX* amx, cell* params) { logprintf("This was printed from the Test plugin! Yay!"); return 1; } PLUGIN_EXPORT unsigned int PLUGIN_CALL Supports() { return SUPPORTS_VERSION | SUPPORTS_AMX_NATIVES; } PLUGIN_EXPORT bool PLUGIN_CALL Load(void **ppData) { pAMXFunctions = ppData[PLUGIN_DATA_AMX_EXPORTS]; logprintf = (logprintf_t) ppData[PLUGIN_DATA_LOGPRINTF]; logprintf(" * Test plugin was loaded."); return true; } PLUGIN_EXPORT void PLUGIN_CALL Unload() { logprintf(" * Test plugin was unloaded."); } cell AMX_NATIVE_CALL WhereIsPlayer(AMX* amx, cell* params) { float x = NULL, y = NULL, z = NULL; //Get the player's position (and check to see if he is even connected). if(g_Invoke->callNative(&PAWN::GetPlayerPos, params[1], &x, &y, &z)) { char name[24]; //Get the rest of the player's information (name, interior, and virtualworld) and print it. g_Invoke->callNative(&PAWN::GetPlayerName, params[1], name); int interior = g_Invoke->callNative(&PAWN::GetPlayerInterior, params[1]); int virtualworld = g_Invoke->callNative(&PAWN::GetPlayerVirtualWorld, params[1]); logprintf("%s is at X: %.2f, Y: %.2f, Z: %.2f (Virtual world: %d, Interior %d).", name, x, y, z, virtualworld, interior); return 1; } return 0; } AMX_NATIVE_INFO PluginNatives[] = { {"HelloWorld", HelloWorld}, {0, 0} }; PLUGIN_EXPORT int PLUGIN_CALL AmxLoad( AMX *amx ) { return amx_Register(amx, PluginNatives, -1); } PLUGIN_EXPORT int PLUGIN_CALL AmxUnload( AMX *amx ) { return AMX_ERR_NONE; } Код:
Creando biblioteca Test\Debug\Test.lib and object Test\Debug\Test.exp Test.obj : error LNK2019: extern symbol "public: int __cdecl Invoke::callNative(struct PAWN::Native const *,...)" (?callNative@Invoke@@QAAHPBUNative@PAWN@@ZZ) unresolved external symbol referenced in function 'function' "long __cdecl WhereIsPlayer(struct tagAMX *,long *)" (?WhereIsPlayer@@YAJPAUtagAMX@@PAJ@Z) Test.obj : error LNK2001: sнmbolo externo "class Invoke * g_Invoke" (?g_Invoke@@3PAVInvoke@@A) unresolved external symbol Test\Debug\Test.dll : fatal error LNK1120: 2 unresolved external symbols ========== Generated: 0 corrects, 1 incorrect ========== It's the same problem of: on page 6, here, on this tutorial. |