Yardım candidate expects 3 arguments, 4 provided

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

ErnestoChe

Üye
Üye
Mesaj
55
Çözümler
1
Beğeni
12
Puan
439
Ticaret Puanı
0
ALdığım Hata:
Shop_manager.cpp:821:96: error: no matching function for call to 'LogManager::ShopLog(DWORD&, DWORD&, const char [22], DWORD&)'
   LogManager::instance().ShopLog(dwOwnerID, dwItemID, "%u is buying the item", dwBuyerID);
                                                                                                ^
In file included from Shop_manager.cpp:25:
log.h:80:8: note: candidate: 'void LogManager::ShopLog(DWORD, DWORD, DWORD)'
  void  ShopLog(DWORD dwOwnerID, DWORD dwItemID, DWORD dwBuyerID);
        ^~~~~~~~~~~~~~
log.h:80:8: note:   candidate expects 3 arguments, 4 provided



Aşağıdaki "%u is buying the item" için nasıl argüman eklemem lazim log.cpp ve log.h için ?

shop_manager.cpp:
        LogManager::instance().ShopLog(dwOwnerID, dwItemID, "%u is buying the item", dwBuyerID);

Log.cpp:
void LogManager::ShopLog(DWORD dwOwnerID, DWORD dwItemID, DWORD dwBuyerID)
{
    Query("INSERT INTO Shop_log (owner , itemid , buyer ) VALUES (%s', '%s', '%s')", dwOwnerID, dwItemID, dwBuyerID);
}

log.h:
    void        ShopLog(DWORD dwOwnerID, DWORD dwItemID, DWORD dwBuyerID);
 
log.h ye de şunu dahil etmeyi deneyin bakalım bir.

Kod:
"%u is buying the item"
 
Log u zaten sql de tutuyor ve kodda da görüldüğü gibi 3 adet argümanı var. String ifadeyi silersen sorunun çözülür. Item sahibinin adı, Item'in idsi ve satın alan oyuncunun id'si kayıt alınıyor. O yazıyı yazdırmak mı istiyorsun sen log'a
 
shop_manager.cpp:
    void CShopManager::SendShopBuyDBPacket(DWORD dwBuyerID, DWORD dwOwnerID, DWORD dwItemID)
    {
        TPacketGDShop pack;
        pack.bSubHeader    = SUBHEADER_GD_BUY_ITEM;

        TSubPacketGDBuyItem subpack;
        subpack.dwGuestID    = dwBuyerID;
        subpack.dwOwnerID    = dwOwnerID;
        subpack.dwItemID    = dwItemID;

        TEMP_BUFFER buff;
        buff.write(&pack, sizeof(pack));
        buff.write(&subpack, sizeof(subpack));

        SHOP_DEBUG("sending for shop %u and item %u (buyer %u) ",dwOwnerID, dwItemID, dwBuyerID);
        LogManager::instance().ShopLog(dwOwnerID, dwItemID, "%u is buying the item", dwBuyerID);
        db_clientdesc->DBPacket(HEADER_GD_SHOP, 0, buff.read_peek(), buff.size());
    }
 
shop_manager.cpp:
    void CShopManager::SendShopBuyDBPacket(DWORD dwBuyerID, DWORD dwOwnerID, DWORD dwItemID)
    {
        TPacketGDShop pack;
        pack.bSubHeader    = SUBHEADER_GD_BUY_ITEM;

        TSubPacketGDBuyItem subpack;
        subpack.dwGuestID    = dwBuyerID;
        subpack.dwOwnerID    = dwOwnerID;
        subpack.dwItemID    = dwItemID;

        TEMP_BUFFER buff;
        buff.write(&pack, sizeof(pack));
        buff.write(&subpack, sizeof(subpack));

        SHOP_DEBUG("sending for shop %u and item %u (buyer %u) ",dwOwnerID, dwItemID, dwBuyerID);
        LogManager::instance().ShopLog(dwOwnerID, dwItemID, "%u is buying the item", dwBuyerID);
        db_clientdesc->DBPacket(HEADER_GD_SHOP, 0, buff.read_peek(), buff.size());
    }
Zaten yazıyormuş shop_debug ile, query e bunu yazdırmanıza gerek yok diye düşünüyorum. Syslogda yazması gerekiyor satın alma yapıldığında
 
C++:
      LogManager::instance().ShopLog(dwOwnerID, dwItemID, "%u is buying the item", dwBuyerID);
Yukarıdaki logu kapattığımda client kapanıyordu shopu açtığımda
paket hatası veriyordu
Alttaki şekilde yaptığımda ise Phase Game does not handle this header hatasını veriyordu
Ve Shopu yükleyemiyordu.
C++:
        LogManager::instance().ShopLog(dwOwnerID, dwItemID, /*"%u is buying the item",*/ dwBuyerID);
 
Tahminimce shop_log tablosuna desc diye bir column açıp 4. Argüman olarak eklemeniz gerekiyor
 
Geri
Üst