如何用vc生成authorware能调用的dll文件
即使vc生成的dll,其他应用程序能调用谢谢我用win32 dynamic-link library进行生成
可是在authorware中调用的时候总是提示没有我申明的函数(我已申明为输出函数)

解决方案 »

  1.   

    1 #pragma comment(linker, "/export:MyFunc=_MyFunc@12");
    2 extern "C" __declspec(dllexport)
    3 .DEF
        EXPORTS
            MyFunc
      

  2.   

    #pragma comment(linker, "/export:MyFunc=_MyFunc@12");
    这个什么意思
    编译得时候提示如下信息:
       Creating library Release/test.lib and object Release/test.exp
    test.exp : error LNK2001: unresolved external symbol _MyPrint
    Release/test.dll : fatal error LNK1120: 1 unresolved externals
      

  3.   

    那个大侠帮个忙,俺的分数不多,不过搞定可以再给分,谢谢
    我先写个最简单的dll
    要求是能让其他程序可以调用,比如authorware调用
    而不仅仅vc的其他程序调用
    只要求返回个字符串//代码如下
    #include "windows.h"
    #include "string.h"
    __declspec(dllexport) char * MyPrint(void);char s[10];
    char * MyPrint(void)
    {
    strcpy(s,"temp");
    return s;
    }
      

  4.   

    #include "windows.h"
    #include "string.h"
    extern "C" __declspec(dllexport) WINAPI char * MyPrint(void);char s[10];
    char * MyPrint(void)
    {
    strcpy(s,"temp");
    return s;
    }
      

  5.   

    既然authorware提示没有申明的函数,那就表示问题出在DLL的导出函数的真正名字上,而不是你写的DLL有问题。用depends查看你的DLL的导出函数的真正名字。
      

  6.   

    #pragma的这种方法用在CALLBACK函数中(也就是__stdcall)类型的函数,既然你的函数不是这种类型,就用不到了.
    extern "C" __declspec(dllexport)已经足够了.
      

  7.   

    最后提醒你一下,在命令行下执行以下命令来察看你的函数是否有导出:dumpbin /exports MyDll.dll还有,你需要建立一个头文件,把需要导出的函数声明放进去.