다른 하드웨어 장치에 액세스하는 동일한 API를 사용하는 두 개의 DLL이 있습니다 (나를 만들었습니다). 컴퓨터에서 어떤 하드웨어가 감지되었는지에 따라 런타임에 그 중 하나를 선택하고 싶습니다.런타임에 동일한 API를 사용하여 두 dll 중 하나를 선택하는 방법은 무엇입니까?
windows 함수 LoadLibrary
을 사용하여 DLL에서 함수를 호출하기 전에 두 라이브러리 중 하나를로드 할 수 있고 VB가로드 된 라이브러리를 사용한다는 것을 알았지 만 파일 이름이 기능 Declare
(또는 Dllimport
), 즉 두 dll 버전 모두 동일한 파일 이름을 가져야합니다. 그리고 이것은 dll이 동일한 디렉토리 (예 : System32 디렉토리)에 위치 할 수 없다는 것을 의미합니다.
런타임시 VB.NET 선택 항목에 동일한 API를 제공하는 두 개의 서로 다른 파일 이름을 가진 두 개의 DLL이있을 수 있습니까?
감사합니다. DLL 중 하나가 이미 릴리스되고 사용 중이며 교체해야하기 때문에 이와 같은 것을 사용하지 않기 위해 노력하고있었습니다. 나는 선택의 여지가 없을지도 모른다 ... –
@ FreddyBen-Zeev : 나는 다른 방법이 없다고 생각한다. 이런 식으로하는 것이 잘못된 이유는 무엇입니까? 왜 DLL 중 하나를 교체해야합니까? -이 방법을 사용하는 유일한 요구 사항은 DLL에 다른 이름을 사용하는 것입니다. ** 또는 ** _ 다른 폴더에 배치하십시오. –
@ FreddyBen-Zeev : 안녕하세요! 어떻게 당신을 위해, 당신은 어떤 진전이 있었나요? 내 대답이 문제를 해결 한 경우 내 게시물 왼쪽의 체크/체크 표시를 눌러 해당 내용을 "수락 됨"으로 표시하십시오. 자세한 내용은 다음을 참조하십시오. [** 답변 수락 방법은 무엇입니까? **] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –