자답.
해결 되었습니다...해결 되었는데 왜 해결된지는 모르겠습니다 ㅠ..
에러가 안나게 된 뒤로 ctrl z로 뒤로 돌려봐도 확실히 잘못쓴건 없었는데...
C# 모듈하고 라이브러리를 재빌드 하고 나서부터인건지 언제부터인건지 아무튼 갑자기 고처젔습니다 흠...;;
질문 삭제할까 하다가 그냥 정보 겸 해서 남겨두겠습니다.
낭천 님이 쓰신 글 :
: * 지난글에 답글달아주신 송신영님 감사합니다.
:
: c++로 메일송신하는게 참...-_-...보내는거까지 했더니 결국 영어아니면 글자가 다 깨저서 그거까지 일일이 만들바에는 걍 c#으로 메일송신 프로그램 만들어서 c++에서 불러다 쓰는게 10배는 빠를 것 같아 시도중입니다.
:
: 아무튼 연습용으로 인터넷 검색하면서 c#프로그램을 만들고 COM참조가능으로 설정 한 후 컴파일해서 dll파일을 만들었습니다.
: dll파일을 regasm을 이용해서 tlb파일을 얻었구요.
:
: 그 다음 이 dll파일과 tlb파일을 c++프로젝트 폴더에 두고, c++ 소스에서 import "SendMail.tlb"를 적고 빌드를 실행했더니
: Debug폴더에 SendMail.tlh & tli파일이 생겼습니다.
:
: 여기까진 잘 되는 것 같았는데요...
: c++에서 CoCreateInstance 라는걸 해야하는 것 같은데...여기에서 에러가 납니다.
: 먼저 c#프로그램의 소스입니다.
:
: using System.Runtime.InteropServices;
:
: namespace SendMail
: {
: [Guid("A5A420C2-F419-4063-B9A8-FC45737A2B37")]
: public interface MailInterface
: {
: int add(int a, int b);
: }
:
: [Guid("FC979228-1F8B-4D04-8CD8-546B0B64E616")]
: public class MailCtrl : MailInterface
: {
: public int add(int a, int b)
: {
: return a + b;
: }
: }
: }
:
:
: 그리고 c++의 헤더와 cpp파일의 소스입니다.
:
: #include "stdafx.h"
:
: struct MailInterface;
:
: class Mail
: {
: public:
: Mail(void);
: ~Mail(void);
: int add(int a, int b);
: private:
: MailInterface *mailInter;
: };
:
:
:
: #include "stdafx.h"
: #include "Mail.h"
: #include
: #include
: #include
:
: #import "SendMail.tlb" no_namespace named_guids
:
: using namespace std;
:
: Mail::Mail(void)
: {
: }
: Mail::~Mail(void)
: {
: }
:
: int Mail::SendMail()
: {
:
: CoInitialize(NULL);
: HRESULT hr = CoCreateInstance(CLSID_MailCtrl,
: NULL,
: CLSCTX_INPROC_SERVER,
: IID_MailInterface,
: reinterpret_cast(&mailInter));
: }
:
:
: 에러가 나는곳은 마지막 소스의 CLSID_MailCtrl와 IID_MailInterface입니다.
: SendMail.tlh파일을 열어보니까 아래와 같은 내용이 있었기 떄문에...맞게 적은 것 같은데..
: // Named GUID constants initializations
: //
: extern "C" const GUID __declspec(selectany) LIBID_SendMail =
: {0xc4404f0c,0x77ca,0x4a20,{0x92,0x09,0x3f,0x86,0x1a,0x70,0x68,0xde}};
: extern "C" const GUID __declspec(selectany) IID_MailInterface =
: {0xa5a420c2,0xf419,0x4063,{0xb9,0xa8,0xfc,0x45,0x73,0x7a,0x2b,0x37}};
: extern "C" const GUID __declspec(selectany) CLSID_MailCtrl =
: {0xfc979228,0x1f8b,0x4d04,{0x8c,0xd8,0x54,0x6b,0x0b,0x64,0xe6,0x16}};
: extern "C" const GUID __declspec(selectany) IID__MailCtrl =
: {0x25109ceb,0xbac9,0x378f,{0xbc,0xad,0x5b,0x2c,0xe3,0xd8,0x3f,0xa5}};
:
: 참고하고 있는 사이트들과 같게 쓴 것 같은데 왜 에러가 나는지 잘 모르겠습니다...
: 도움좀 주실 수 있으면 감사하겠습니다.
:
: 참고사이트
:
http://silverlab.tistory.com/12
:
http://tiger5net.egloos.com/5510639