Problem mit externer Lib

demon2000

Level-1
Beiträge
26
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, cih hab bißchen mit externer lib und C-Code experementiert.
Einfache funktion wie C=A+B funktioniert.

Jetzt wollte ich einen größeren Code einbinden und siehe da, es geht nicht.

Kann mir einer helfen, brauche es dringend?

Code folgt:
 
dann fang mal an alle relevanten infos dazu zu geben, am besten den quellcode, nur so läßt sich der fehler wirklich ermitteln.

alternativ kannst du in einem langwierigen verfahren gemäß dem flüsterpostprinzip anfangen hier uns zu erklären wos wie wann hackt

ein HILFE ICH BRAUCH ES DRINGEND gilt übrigens nicht,
das schreibt hier jeder, und genau wie du gibts keine echten infos zum problem. hellsehen ist mir leider nicht in die wiege gelegt worden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kompiler Visual C++ 2010
Einstellungen:
Project / Settings / C/C++ / Customize: Enable function-level linking deaktivieren


Project / Settings / C/C++ / Optimization: Customize: Global Optimizations + Generate Intrinsic
Functions + Favor small code aktivieren


Project / Settings / C/C++ / Code Generation: Struct member alignment = 1 Byte


Wenn Sie irgendeine Ansi-C Standardbibliotheksfunktion verwenden wollen, müssen Sie in den Projekteinstellungen folgende Auswahl aktivieren:
Build / Settings / C/C++ / Category: Optimizations : Customize: Generate Instrinsic Functions Damit werden die einfachsten Ansi-C Bibliotheksfunktonen Inline aufgelöst
(strcpy(),...).Ansonsten dürfen keine Bibliotheken verwendet werden.


Für Visual 6.0:
Project / Settings / C/C++ / General: Debug Info: Program Database (nicht: Program Database for Edit and Continue)

 
C-File:
Code:
/* The implemenation templates */
void FB_ENCRYPT(FB_ENCRYPTtyp* inst)
{
aes_encrypt_cbc(inst->ARRUSERKEY, inst->ARRINITVEKTOR, inst->ARRDATAIN, inst->ARRENCRYPTEDDATA, 16);
}
BOOL FB_ENCRYPTinit(FB_ENCRYPTtyp* inst, BOOL bRetain)
{
int j, k, l; /* Loop counters */
/* Initializing Function Block components */
for (j = 0; j < 16; j++)
{
(*((inst->ARRDATAIN) + j)) = 0;
}
for (j = 0; j < 16; j++)
{
(*((inst->ARRUSERKEY) + j)) = 0;
}
for (j = 0; j < 16; j++)
{
(*((inst->ARRINITVEKTOR) + j)) = 0;
}
for (j = 0; j < 16; j++)
{
(*((inst->ARRENCRYPTEDDATA) + j)) = 0;
}
if (bRetain)
return bRetain;
/* Initalize the retain variables only if bRetain is FALSE */
return bRetain;
}
 
Code:
void aes_encrypt_cbc
(
    const unsigned char* expanded_key,
    const unsigned char* iv,
    const unsigned char* src,
    unsigned char* dst,
    unsigned short length
)
{
    unsigned char ivbuf[AES_BLOCK_SIZE];
 expanded_key;
    /* copy the initialisation vector into buffer */
    aes_memcpy(ivbuf, iv, AES_BLOCK_SIZE);
    /* loop over blocks */
    while (length > 0)
    {
 
         aes_memcpy(ivbuf, dst, AES_BLOCK_SIZE);
 
        /* next */
        length -= AES_BLOCK_SIZE;
        src += AES_BLOCK_SIZE;
        dst += AES_BLOCK_SIZE;
    }
}
void aes_memcpy (unsigned char* dst, const unsigned char* src, unsigned short length)
{
    while (length-- > 0u)
    {
        *dst++ = *src++;
    }
}
 
Zuviel Werbung?
-> Hier kostenlos registrieren
.h-File
Code:
#define BOOL char 
#define BYTE unsigned char 
#define INT short 
#define UINT unsigned short 
#define WORD unsigned short 
#define DINT long 
#define UDINT unsigned long 
#define DWORD unsigned long 
#define REAL float 
#define LREAL double 
#define TRUE 1 
#define FALSE 0
#define NB              (4U)
/* the number of 32-bit words comprising the cipher key */
#define NK       (4U)
/* the number of rounds */
#define NR       (10U)
/* block size in bytes */
#define AES_BLOCK_SIZE (NB*4U)
/******************aes_encrypt.h*******************/
/* #define AES_128_EXPANDED_KEY_LENGTH (176) */ /* the length of an expanded key in bytes */

typedef struct
{
 BYTE ARRDATAIN[16];
 BYTE ARRUSERKEY[16];
 BYTE ARRINITVEKTOR[16];
 BYTE ARRENCRYPTEDDATA[16];
}
FB_ENCRYPTtyp;

/* Enum definitions */
 
void FB_ENCRYPT(FB_ENCRYPTtyp* inst);
BOOL FB_ENCRYPTinit(FB_ENCRYPTtyp* inst, BOOL bRetain);
void aes_encrypt_cbc(const unsigned char* expanded_key,
                            const unsigned char* iv,
                            const unsigned char* src,
                            unsigned char*       dst,
                            unsigned short       length);
void aes_memcpy(unsigned char*       dst,
                       const unsigned char* src,
                       unsigned short       length);
 
und jetzt noch die exakte fehlerbezeichnung des codesys-compilers, die target-konfiguration und die steuerungsknofiguration, ob der code als solches ok ist vermag ich nur im bezug auf die programmiersprache zu sagen, aber nicht auf das was es tun soll, werde mir das noch ansehen
 
Zurück
Oben