Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2009, 19:00   #1
LukS
Пользователь
 
Аватар для LukS
 
Регистрация: 22.01.2009
Сообщений: 20
Вопрос unresolved external symbol...

Подключил библиотеку GD2 к проекту (работаю в Visual Studio 2008, c++).

1. Скопировал в VS2008/VC/lib bgd.lib
2. Скопировал инклуды в VS2008/VC/include/bgd/
3. Написал простой проект:

Код:
/* Bring in gd library functions */
#include <stdio.h>
#include "bgd/gd.h"

int main() {
  /* Declare the image */
  gdImagePtr im;
  /* Declare output files */
  FILE *pngout, *jpegout;
  /* Declare color indexes */
  int black;
  int white;

  /* Allocate the image: 64 pixels across by 64 pixels tall */
  im = gdImageCreate(64, 64);

  /* Allocate the color black (red, green and blue all minimum).
    Since this is the first color in a new image, it will
    be the background color. */
  black = gdImageColorAllocate(im, 0, 0, 0);  

  /* Allocate the color white (red, green and blue all maximum). */
  white = gdImageColorAllocate(im, 255, 255, 255);  
  
  /* Draw a line from the upper left to the lower right,
    using white color index. */
  gdImageLine(im, 0, 0, 63, 63, white);  

  /* Open a file for writing. "wb" means "write binary", important
    under MSDOS, harmless under Unix. */
  pngout = fopen("test.png", "wb");

  /* Do the same for a JPEG-format file. */
  jpegout = fopen("test.jpg", "wb");

  /* Output the image to the disk file in PNG format. */
  gdImagePng(im, pngout);

  /* Output the same image in JPEG format, using the default
    JPEG quality setting. */
  gdImageJpeg(im, jpegout, -1);

  /* Close the files. */
  fclose(pngout);
  fclose(jpegout);

  /* Destroy the image in memory. */
  gdImageDestroy(im);
}
В настройках указал No Precompile Headers; Multi-threaded DLL; в командную строку линковщика добавил bgd.lib. Результат:



Судя по ошибкам, невозможно найти функции в библиотеке... В чем трабла,подскажите? Компилировал Dev-CPP - все ок. А в студии не компилируется... Делал все как описано в документации к gd2.

P.S. если есть библиотеки получше GD2 для с++, то посоветуйте... Мне нужна только функция "gdImageGetPixel/gdImageSetPixel".
LukS вне форума Ответить с цитированием
Старый 04.04.2009, 22:06   #2
LukS
Пользователь
 
Аватар для LukS
 
Регистрация: 22.01.2009
Сообщений: 20
По умолчанию

Проблема решилась перекомпилом всех исходников библиотеки... Потратил уйму времени, пока собрал весь проект, исправил все ерроры (а там даже очепятки были) Походу у разработчиков повреждённая библиотека. И еще, если компилятор > 6.0 MS то вместо gdImageJpeg,Png, и т.д. надо использовать gdImageJpegPtr иначе будет crash

Тему закройте, проблема решена.

Последний раз редактировалось LukS; 04.04.2009 в 22:09.
LukS вне форума Ответить с цитированием
Старый 16.04.2009, 11:41   #3
StillWater
Новичок
Джуниор
 
Регистрация: 16.04.2009
Сообщений: 1
По умолчанию

похожая проблема, но при попытке использовать криптографию openSSL. Поставлена версия Win32OpenSSL-0_9_8k. В процессе компиляции выдает unresolved external symbol... Как исправить? Заранее благодарен...
Код программы:
Код:
#include <stdio.h> 
#include <openssl/rsa.h> 
#include <openssl/pem.h> 

/* Имена ключевых файлов */ 
#define PRIVAT "./privat.key" 
#define PUBLIC "./public.key" 

void main() 
{ 
/* указатель на структуру для хранения ключей */ 
	RSA * rsa = NULL; 
	unsigned long bits = 2048; /* длина ключа в битах */ 
	FILE *priv_key_file = NULL, *pub_key_file = NULL; 
/* контекст алгоритма шифрования */ 
	const EVP_CIPHER *cipher = NULL; 
	priv_key_file = fopen(PRIVAT, "wb"); 
	pub_key_file = fopen(PUBLIC, "wb"); 
/* Генерируем ключи */ 
	rsa = RSA_generate_key(bits, RSA_F4, NULL, NULL); 
/* Формируем контекст алгоритма шифрования */ 
	OpenSSL_add_all_ciphers(); 
	cipher = EVP_get_cipherbyname("bf-ofb"); 
/* Получаем из структуры rsa открытый и секретный ключи и сохраняем в файлах. 
* Секретный ключ шифруем с помощью парольной фразы "hello" */ 
	PEM_write_RSAPrivateKey(priv_key_file, rsa, cipher, NULL, 0, NULL, "hello"); 
	PEM_write_RSAPublicKey(pub_key_file, rsa); 
/* Освобождаем память, выделенную под структуру rsa */ 
	RSA_free(rsa); 
}
StillWater вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
unresolved external symbol IgorKr Общие вопросы C/C++ 3 20.12.2008 15:01
unresolved external symbol Prestigio Общие вопросы C/C++ 2 28.07.2008 07:12
Программирование под Windows (ошибка), как избежать ошибки Unresolved external '_main' referenced fro DeLure Общие вопросы C/C++ 2 02.03.2008 01:35