请问用VC怎么调用我自己用ATL写的DLL?

解决方案 »

  1.   

    用atl编的,那应该是进程内组件了
    先要注册,也许编译的时候已经注册了
    然后,在你程序调用CoCreateInstance或DllGetClassObject的时候,就加载组件了
      

  2.   

    我在网上下载的例子(ATL COM Project)经build之后就已经注册了。然后在VC中
    project->add to project->components and controls就可以加载。
    楼上的:能不能把你的第三句稍微详细的解释一下,我们也好学习学习!
    up!!!!!!!!!
      

  3.   

    如果支持IDispatch的话还好说,要不然的话,faint!我一想头就大,VC实在是不怎么样,我只能这么说
      

  4.   

    楼上的,说明你的内功不到~不是vc不好,你写一个调用atl的可执行程序,在你的工程选项中的调试选项中添加该可执行程序的绝对路径,就可以调试了。
    另外,写累死的程序,应该先写成可执行程序,发现没有任何功能、程序错误时在转贴成atl,这样就减少了很多的调试工作。
      

  5.   

    对于atl的com控件而言,完全可以通过调用来调试,在vs7下把生成的.h文件关联进来就可以用了
      

  6.   

    我加载我时候显示错误:the file you selected is not a recognizable component。这是怎么回事,我作的dll文件只有一个属性和一个方法,其他地方没改动。
      

  7.   

    用 #import 最方便了,给你个例子#include "stdafx.h"#import "..\TimeServer\TimeServer.dll"
    using namespace TIMESERVERLib;int _tmain(int argc, TCHAR* argv[])
    {
    CoInitialize(NULL);

    DATE date = 0;

    {
    IRemoteTimePtr pTime(__uuidof(RemoteTime));
    date = pTime->GetTime();
    }

    SYSTEMTIME st = {0};
    VariantTimeToSystemTime(date, &st);
    _tprintf(_T("%04d-%02d-%02d %02d:%02d:%02d\n"),
    st.wYear, st.wMonth, st.wDay,
    st.wHour, st.wMinute, st.wSecond);

    CoUninitialize();
    return 0;
    }