Visual Studio를 사용하여 C에서 정적 라이브러리를 만들었습니다. 이 라이브러리에는 현재 디렉토리에 저장된 텍스트 파일에 액세스하는 기능이 있습니다. 라이브러리가 제대로 구축되었습니다. 하지만 문제는 다른 프로젝트 외부에서 함수를 호출 할 때 해당 텍스트 파일을로드하지 않는다는 것입니다. (.lib 파일을 적절히 링크 했으므로 다른 모든 파일은 해당 파일을로드하는 것 외에는 작동합니다.)C 정적 라이브러리의 파일 참조
.lib 파일에서 텍스트 파일을 상대 경로로로드하는 방법에 대한 아이디어가 있으십니까 ?? 다음 사전에
감사합니다 ..
는 test.lib 파일이 작성되었으며 생성 된 라이브러리 테스트 함수 정의
int test()
{
FILE *fp = fopen("hello.txt", "r");
if(!fp) printf("File Error");
return 0;
}
입니다. 현재 폴더 hello.txt 파일에만 액세스하지만이 기능이 다른 프로젝트에서 호출 된 경우. 파일 오류입니다.
#include <errno.h>
#include <string.h>
...
if(!fp) printf("File error: %s\n", strerror(errno));
을 그리고 무슨 일이 일어나고 있는지 확인하려면 운영 체제에서의 errno의 의미를 찾아 :
코드의 실제 모양은 무엇입니까? – bobbymcr
은 해당 텍스트 파일을 열어주는 taht 함수의 코드와 그 라이브러리를 사용하는 응용 프로그램을 보여줍니다. –
lib 코드 또는 다른 코드에서 파일을로드하는지에 관계없이 어떤 차이도 없어야합니다. 그러나 현재 디렉토리가 실제로 무엇인지 알고 있는지 확인하십시오! – codeling