2011-08-18 1 views
0

Visual Studio 2005 프로젝트를 Visual Studio 2010으로 변환하고 있는데이 과정에서 this guide을 사용했습니다. 링커가 네이티브 정적 라이브러리 (.NET 어셈블리가 아니라 세 번째 파트 라이브러리 sqsapi32.lib)와 연결되지 않는 문제가 하나 남았습니다. 나는 속성 -> 구성 속성 -> 링커 -> 입력 -> 추가 종속성에서 라이브러리를 sqsapi32.lib을 포함, 그러나 링커는 다음과 같은 경고 통지 유지 : .exe 파일이 생성 실행C++ Visual Studio 2010에서 기본 정적 라이브러리를 연결하지 않음

warning LNK4248: unresolved typeref token (01000014) for 'SQLDA'; image may not run 

을 다음 오류 : "sqsapi32.dll이 컴퓨터에 없기 때문에 프로그램을 시작할 수 없습니다".

어떻게 해결할 수 있습니까? Visual Studio 2005를 사용하여 작동했습니다.

+0

나는 그 링커가 제시 경고와 함께 할 아무것도 바란다 문제 – Rotte2

+0

를 해결 sqsapi32.dll합니다. 내 대답을 확인해. – Ajay

답변

2

표시된 경고와 오류가 반드시 연결되어있는 것은 아닙니다.

오류를 방지하려면 sqsapi32.dll이 실행하려는 exe와 같은 위치에 있어야합니다. 경로를 추가

행운을 빌어 요,

3

C++/CLI를 사용하고 있으므로이 경고는 링커에서 예상됩니다. 이 단지 선언 많은 구조체입니다

struct ABC;

ABC

가 (당신이 소스 코드를 가지고 있겠지) 라이브러리를 기본으로 사용되는, 그리고 ABC는 불투명 방식으로 당신에게 라이브러리에 의해 제공됩니다. 당신은 당신의 소스 코드에 가짜 구조를 선언하여이 경고를 방지 할 수 있습니다 : 귀하의 경우에 따라서

struct ABC 
{ 
}; 

을 :

struct SQLDA{};

는 일을 할 것입니다.

이것은 C++/CLI 링커를 만족시킬 뿐이며 어떠한 해를 끼치 지 않을 것입니다.