2014-09-30 7 views
1

내 질문은 내가 루비/WebDriver에서 일하는 개발자이고 우리의 웹 애플리케이션을 자동화 성공을 많이 있었다 Calling a C# .dll from Ruby via COM요구 사항

과 매우 유사 루비 WIN32OLE에 의해 액세스 할 수 있습니다. 전자 메일 서비스를 통해 알림을 보내고 싶습니다. 그렇게하려면 전자 메일 본문을 vb.Net로 작성된 암호 dll로 암호화해야합니다.

제 질문은 dll 파일의 어떤 부분이나 속성이 '새로운'방법의 OLE 서버 매개 변수에 해당합니까? 특히, 객체를 만들면 new_ole_thing = WIN32OLE.new('whatgoes.here')

excel의 경우 (Excel.Application)이고 이전의 연결된 질문은 ('DllAttempt.CsharpDll')입니다. 내 질문의 두 번째 부분은 그 응용 프로그램의 파일 구조에 해당 DLL이 이상적으로 위치 할 것입니다? 같은 디렉토리? 아니면 어떻게해야합니까/그것을 요구합니까?

또한 파일을 COM으로 다시 컴파일했습니다.

감사합니다.

답변

2

기술을 사용하여 COM dll을 만드는 경우 레지스트리에 등록됩니다. 그런 다음 "progid"를 사용하여 os의 표준 루틴을 사용하여 레지스트리에서 dll 위치를 찾습니다.

progid는 텍스트 이름입니다. oleview (Visual Studio 및 Windows SDK와 함께 제공)를 사용하여 세부 정보를 볼 수 있습니다.

progid는 com 객체로 표시되는 클래스의 인터페이스를 정의하는 VB 코드에서 설정됩니다. C#에서는 지정하는 속성 인 called ProgId입니다.