如果需要改写SWMM模型的源代码,通常需要重新编译生成新的动态链接库,也就是常说的DLL,将SWMM 5源码编译为DLL的主要步骤如下:

1. 在EPA官网上下载SWMM模型计算引擎源代码后解压,里面包含了模型代码源文件。在对代码进行必要的个性化修改后(如果不需要修改代码,就完全没有必要自己重新编译了,安装SWMM软件后,安装文件下就有计算引擎的DLL文件)就可以进行接下来的工作了。

2. 新建工程:以VC6.0为例,点击文件/新建→工程;选择”win32 dynmaic-link library”,输入工程名字,如SWMM 5,在“位置”下输入新工程存储的路径,点击下方的“确定”;

3. 选择“一个空的工程”,点击“完成”;在弹出的对话框中点击“确定”;

4. “工程”菜单中选择“添加到菜单”→文件,然后把文件夹中的包括头文件在内的SWMM源文件(均以.c,.h后缀)全部添加到工程。

5. 在swmm5.c中取消define DLL前的注释,使代码为如下形式:

//#define CLE

//#define SOL

#define DLL

6. 选择“组建”中的“编译 SWMM5 ”,在出现的对话框选择“是”,然后再选择”build”中的”execute swmm5″就完成了整个文件的编译和执行。生成的debug文件夹中有swmm5.DLL。

7. 最后,把swmm5.def文件添加到工程中重新编译一次。

更多讨论可加入SWMM模型QQ群:157029719

SWMM模型交流





共11条评论
    零点研究室

    2015年07月22日 17:57:11

    您好,请问为什么按照上述方法编译程序出现错误呢?

    2015年07月22日 18:29:13

    @朱:这个方法已经过时,直接去EPA官网上下载SWMM模型的源码包,用VS2010或者其它版本即可生成。

    零点研究室

    SWMM爱好者

    2015年07月30日 15:06:56

    请教下,SWMM GUI在delphi7中怎么编译

    2015年08月11日 21:29:18

    @SWMM爱好者 您好,我平时需要界面时都是基于GIS重新设计界面,对SWMM图形化界面的编译未做深入研究,无法解答您的问题。

    零点研究室

    2016年08月25日 09:36:05

    您好,请问可以写一篇图文解释如何编译swmm动态链接库源代码的文章吗,我试了很多次,都没有成功。谢谢

    零点研究室

    2016年08月25日 09:38:02

    您平时在二次开发的过程中,会采用读取rpt文本文件的形式吗

    2016年08月31日 23:05:33

    @胡 对于简易的二次开发,是可以采用这个模式,我们目前一般都深度二次开发,不会再采取这种方式,而是基于内存交互,不过这样已经属于比较复杂的了。

    零点研究室

    zhnag

    2016年11月19日 08:44:43

    你好,最近需要进行基于GIS和SWMM的二次开发学习,不知道冲哪一方面入手,能不能提供一点相关的资料吗

    零点研究室

    流年

    2017年03月08日 15:38:26

    你好,我用vs2010生成dll文件时老是失败,请问你有用vs2010生成dll文件的详细教程吗?

    零点研究室

    go

    2017年09月19日 14:28:45

    Exception in thread “main” java.lang.UnsatisfiedLinkError: Unable to load library ‘swmmh5′: 找不到指定的模块。java调用swmmh5.dll报找不到,但路径是正确的。

    零点研究室

    HalleyComet

    2020年07月05日 15:59:26

    您好,请问如果只是想对SWMM的代码进行少许的修改,修改后应怎样操作呢?大瓜老师说的“用VS2010或者其它版本即可生成”,这个应该具体怎么操作呢?需要生成新的dll文件放软件安装包吗?

评论