2012-07-21 2 views
1

프로젝트에서 두 개의 타사 라이브러리를 사용하고 싶지만 하나는 __stdcall 규칙으로 컴파일하고 다른 하나는 __cdecl로 컴파일했습니다. 내 프로젝트 속성을 무엇으로 설정했는지에 상관없이 LINKER는 하나의 라이브러리 또는 다른 라이브러리를 연결하지 못합니다. 이것을 할 수있는 방법이 있습니까?하나의 vs2008 프로젝트에서 __stdcall 및 __cdecl과 라이브러리를 결합하는 방법

+1

야, 8 질문, 0 % 동의합니까? – Puppy

+2

첫 번째 파일의 .h 파일을 편집하고 함수 선언에 __stdcall을 삽입하십시오. –

+0

@HansPassant 감사합니다. – Anorflame

답변

1

코드를 컴파일 할 때 외부 코드를 사용해야합니다. 적합한 함수가 올바른 규칙으로 선언되는 한, 자신의 코드에 사용하는 규칙은 중요하지 않으며 선택하는대로 작동합니다.

+0

나는 동의하지만 헤더 중 하나에서 선언을 변경하지 않고 컴파일하려고하면 링커가 실패한다는 것을 알았다. (내 다른 질문에 더 자세히 설명되어있다.) 규약이 헤더에 명시 적으로 지정되지 않은 경우 가져온 기능에 대해 어떤 규칙이 사용됩니까? 내 가정 (내가 틀렸다면 수정)은 프로젝트의 속성이나 특정 파일에 지정된 것입니다. 이 경우 (제 3 자 라이브러리가 다른 라이브러리로 컴파일되는 동안 전체 프로젝트에 대해 하나의 컨벤션을 사용함) 링커가 실패했다고 생각합니다. – Anorflame

관련 문제