비쥬얼 스튜디오 링크에러

anaud2의 이미지

안녕하세요

현재 openssl의 함수를 손쉽게 헤더파일과 라이브러리를 가지고 리눅스 상에서 암호화 통신 함수를 만들엇습니다.
리눅스상에서는 제가 만든 함수들을 정적 라이브러리로 만들었구요

그걸 다시 윈도우 상에서 DLL로 만들라는 ! 지시가 있어서 급하게 윈도에 openssl 을 깔고 만들었습니다.

똑같이 비쥬얼스튜디오6.0에서 DLL만드는 형식에 맞게 만들고 링크 단에서 project / settting /link 에서 ssleay32.lib, libeay32.lib 를 추가해주고
Tool / options 에서"ssleay32.lib, libeay32.lib"파일이 있는 링크위치도 추가해줬습니다.

그래서 DLL만드는것은 성공하여 이것을 사용하는 프로그램을 만들어줬는데

정상적으로 컴파일 링크가 되지만 최초 openssl에서 제공해주는 함수를 사용하기만 하면! 에러가 발생합니다.

에러 메세지는 "OPENSSL_Uplink(100F2010,05): no OPENSSL_Applink " 라는 에러가 납니다.
아는 선배의 말로는 디버깅 결과 openssl에서 제공하는 함수를 실행하는 과정에서 이 파일에 대해 라이브러리를 못불러와서 생기는거 갔다.
란 말을 하는데요

lib 로 링크 잡아주면 컴파일단계에서 즉 제가 만드는 DLL 파일 단계에서 이미 필요한 라이브러리를 가져다 쓰는거 아닌가요?
흠! 도저히 이해가 안되네요

도와주세요 ㅠ

그노카스의 이미지

답이 아닐수도 있습니다. 그냥.. 옛날 경험에서 말씀드리는데요.
openssl.dll(혹은 관련 dll)를 실행파일과 같은 디렉토리에 넣고 실행해 보세요.

그리고, dll에 있는 함수는 컴파일 단계에서 실행파일에 포함되지 않을껍니다.
말그대로, 다이나믹하게 링크되기 위해 쓰이는 거라서요..

anaud2의 이미지

윗분이 말씀하신대로 debug와 c파일이 있는곳 모두 복사해서 넣어봤지만...

아직도 연결이 안되고 프로그램이 실행이 안되네요 ㅠ

열심히 하겠습니다.ㅠ

mach의 이미지

applink.c라는 파일을 찾아서 <설치경로>/include/openssl/applink.c
프로젝트에 이 파일을 추가해줍니다.
또는, 단순,...무식 하게, #include 하는 방법도 있겠습니다.

* 아시다시피 해보지는 않았습니다. 해보시고 답글올리시면, 다른분들에게도 도움이 되겠군요.

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

anaud2의 이미지

#INCLUDE 로 하진 않았습니다.(하면 링크에서 에러가 되네요)
같이 프로젝트에 추가한이후에 컴파일결과 전에 에러표시는 안나지만
비슷한 구간에선 여전히 죽어버리네요 ㅠㅠ

에러는 debug Assertion Failed!

Program : C:\C\client\debug\client.exe
file : dbghep.c
line : 1011

Expression : +CrtlsValidHeapPointer(pUserData)
For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts

(Press Retry to debug the application)
이라고 나오네요

아무리 봐도 openssl 에서 제공하는 dll이 제기능을 못하는거 같단생각만 드네요 ㅠ

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.