2011-01-21 13 views
1

私は、Visual Studio 2010で編集していたサンプルコードを、DESを使用して暗号化および復号化しています。何らかの理由で、コードをコンパイルすると、des_encrypt1()関数とdes_set_key_checked()関数を参照しているこれらの2つのLNK2019エラーが発生し続けます。私のコードで見たように、私はdes.hファイルをインクルードするようにしました。そのファイルには、これらの関数の両方の定義がリストされています。私はCの新人ですので、私はそれが私が見落としている単純なものかどうかはわかりませんが、どんな助けも大歓迎です。私は正しくここにコードを添付する方法がわからないので、フォーマットが奇妙に見える場合は申し訳ありませんが、以下の太字のインクルードは#include des.hと言うべきです。コードのコンパイル時にLNK2019エラーが発生する

#include <des.h> 


#define ENC 1 
#define DEC 0 

//extern des_encrypt1(DES_LONG *data,DES_key_schedule *ks, int enc); 

//void des_set_key_checked(const_des_block *key, des_key_schedule *schedule) 



int main() 
{ 

int k; 
long in[2]; 
static unsigned char cbc_key[8] = {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef}; 
des_key_schedule key; 
//struct timeval start, end; 
//double t1, t2, t3, t4; 

if ((k = des_set_key_checked(&cbc_key,key)) != 0) 
    printf("\nkey error\n"); 

in[0] = 3212314; 
in[1] = 1231233; 

printf("DES Clear Text: %ld%ld\n",in[0],in[1]); 
//gettimeofday(&start, NULL); 
//t1=start.tv_sec+(start.tv_usec/1000000.0); 
des_encrypt1(in,key,ENC); 
//gettimeofday(&end, NULL); 
//t2=end.tv_sec+(end.tv_usec/1000000.0); 
//printf("Time for Encryption\n", t2-t1); 

printf("DES Encryption: %u%u\n",in[0],in[1]); 
//gettimeofday(&start, NULL); 
//t3=start.tv_sec+(start.tv_usec/1000000.0); 
des_encrypt1(in,key,DEC); 
//gettimeofday(&end, NULL); 
//t4=end.tv_sec+(end.tv_usec/1000000.0); 
//printf("Time for Decryption\n", t4-t3); 
} 
+0

extern "C"? – leppie

+0

コードブロックを4つのスペースでインデントする必要があります。また、コードブロックの先頭に空白行を付ける必要があります。それが正しく表示されます。 –

答えて

0

あなたがC++としてコードをコンパイルしているが、ヘッダがCのために書かれている場合は、次のようにそれを含める必要があります。

extern "C" { 
    #include "des.h" 
} 
+0

ご協力ありがとうございます。これは間違いなくLNKエラーを取り除きましたが、今はdes_key_schedulerが宣言されていない識別子であり、 ';'が欠けていると信じています。キーの前に(des_key_scheduleキー;のように)任意のアイデア? – Joshua

+1

'des_key_schedule key;だけでなく' struct des_key_schedule key; 'を使用するべきでしょう。 – nos

+0

ありがとう。これは、 'key'のための宣言されていない識別子メッセージをたくさん削除しましたが、現在はキーが未定義の構造体des_key_scheduleを使用していると不平を言っています。 – Joshua

0

あなたは、OpenSSL/

からdes.hを含める必要が
#include <openssl/des.h> 
関連する問題