После добавления API программа не запускается
Здравствуйте,
Есть ключи Guardant, написал мини программку для проверки API
компилируется без ошибок, но скомпилированный файл ехе не запускается, кликаеш на нём, а ничего совсем не происходит, в процесах тоже ничего не появляется.
На форме есть окно Мемо и кнопка, при нажатии на кнопку в мемо должен появиться номер ключа
//------------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//------------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#include <stdio.h>
#include <conio.h>
#include "grdapi.h"
#include "grddongle.h"
#include <stdlib.h>
#include <string.h>
TGrdFindInfo GrdFindInfo;
CGrdDongle GrdDongle(GrdFMR_Local);
TForm1 *Form1;
//------------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//------------------------------------------------------------------------------
void PrintError(const char* Text)
{
Form1->Memo1->Lines->Add(Text);
}
//----------------------------------------------------------------------------------------------
void PrintText(const char* Text)
{
Form1->Memo1->Lines->Add(Text);
}
//----------------------------------------------
int PrintCode(int nErrorCode)
{
// Buffer for error string
char szErrorMsg[256];
// Translate error code to text message
int nRet = GrdFormatMessage(
NULL, // Handle is not used
nErrorCode, // Guardant API error code
GrdLng_ENG, // Request english string
szErrorMsg, // Buffer for error message string
sizeof(szErrorMsg), // Max buffer size
NULL);
if (nRet != GrdE_OK)
{
sprintf(szErrorMsg, "ERROR! %d ", nErrorCode);
PrintError(szErrorMsg);
}
else
{
if (nErrorCode == GrdE_OK)
PrintText(szErrorMsg);
else
{
char ErrorMsg[512];
sprintf(ErrorMsg, "ERROR! %s ", szErrorMsg);
PrintError(ErrorMsg);
}
}
return nErrorCode;
}
//------------------------------------------
int ErrorHandling2(int nRet)
{
PrintCode(nRet);
return nRet;
}
//---------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int nRet;
DWORD dwID;
DWORD grdmid,grdmsn;
nRet = GrdDongle.Create(2117811938, 0, 0, 0);
ErrorHandling2(nRet);
GrdDongle.SetFindMode(GrdFMR_Local, GrdFM_NProg + GrdFM_Ver + GrdFM_Type,
0, 0, 0, 1, 0, GrdDT_GSII64, GrdFMM_GS3S | GrdFMM_GS3);
ErrorHandling2(GrdDongle.GetLastError());
nRet = GrdDongle.Find(GrdF_First, &dwID, &GrdFindInfo);
grdmid=(DWORD)GrdFindInfo.dwPublicCode; // Public code
grdmsn=(DWORD)GrdFindInfo.dwID; // Dongle's ID (unique)
ErrorHandling2(nRet);
Form1->Memo1->Lines->Add(IntToHex((int)grdmid,8));
Form1->Memo1->Lines->Add(IntToHex((int)grdmsn,8));
}
//---------------------------------------------------------------------------
в проект добавленны файлы grddongle.obj и GrdFWBO.obj
Rad Studio 10