找回密码
 注册
Simdroid-非首页
查看: 100|回复: 6

[2. C/C++/C#] vcnet2005如何生成没有main函数的dll?

[复制链接]
发表于 2008-12-10 17:29:39 | 显示全部楼层 |阅读模式 来自 北京大兴
生成的dll要被adams调用
现在调试一个函数,总说不能打开msvcrt。lib文件。
用cl/c/md *.cpp 命令编译可以通过
但是去掉/c就说打不开文件了,这些都是在cmd方式下输入的命令行出现的问题


在vcnet下编译,就会出现link错误,说函数中的一个什么东西不能识别。这个函数生成dll在vc6.0下成功过,也能在adams下看见调用的,没想到升级了就不行了。
发表于 2008-12-11 08:06:59 | 显示全部楼层 来自 大连理工大学
Simdroid开发平台
那应该是升级以后的程序不能用吧,有什么错误提示
回复 不支持

使用道具 举报

 楼主| 发表于 2008-12-11 18:01:35 | 显示全部楼层 来自 北京
经过这几天的调试,现在出现的错误是“无法找到入口”
也就是编译生成dll时候无法找到入口点
回复 不支持

使用道具 举报

 楼主| 发表于 2008-12-11 18:05:58 | 显示全部楼层 来自 北京
#include "mdi_c.h"
#include "math.h"
#define M 8388608
#define T 2045
double MYRAND( double l )
{
        double x,r,k,y,x1,x0;
        int j,i;
        x0=1;
        x1=1;
        for(j=0;j<l;j++)
        {
                k=0;
                for( i=0;i<12;i++)
                {
                        x=fmod(T*x0,M);
                        r=x/M;
                        x0=x;
                        k=r+k;
                }
                y=fmod(T*x1,M);
                x1=y;
                x0=x1;
        }
        return(k-6);                       
}
void vc_initialize_user()
{
        vc_function_add("MYRAND", (FUNCTION)MYRAND, fn_R_R,1,0);
}
这是那个程序,mdi_c.h是adams需要的,通过这个把c的格式变成adams能识别的,因为adams本身的函数都是以fortran编写的,后来增加了c模板的,但还是按fortran的格式要求,就增加了这个头文件。
现在编译连接时候,vc不能识别vc_function_add("MYRAND", (FUNCTION)MYRAND, fn_R_R,1,0);
这个函数
回复 不支持

使用道具 举报

 楼主| 发表于 2008-12-11 18:09:48 | 显示全部楼层 来自 北京
而且vc写的函数被adams调用的时候需要fortran的两个库文件
我觉得生成dll跟这些都没关系把,dll就是一个动态链接库文件嘛
我也修改了include和lib的路径,把要的文件路径都包括进去了啊
回复 不支持

使用道具 举报

 楼主| 发表于 2008-12-14 13:49:48 | 显示全部楼层 来自 北京丰台
typedef void (*FUNCTION)();
void vc_function_add(
   char   *, /* User name of function */
   FUNCTION, /* Function pointer      */
   ArgType , /* Argument type         */
   int     , /* Argument count        */
   int       /* Units type encoding   */
);
这是那个头文件“mdi”中的一部分内容,在vc编译时候总是提示vc_function_add这个函数不被识别。
回复 不支持

使用道具 举报

 楼主| 发表于 2008-12-14 13:50:33 | 显示全部楼层 来自 北京丰台
上面那部分定义那里不对吗?可是在vc6.0里是同样的头文件,就可以通过啊
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-11-1 13:28 , Processed in 0.036724 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表