quote:以下是引用万泉河在2005-07-12 09:31:27的发言:
WinCC允许用户使用自己的DLL (动态链接库)。
通过补充各自的函数或动作,可以在函数和动作中使用已有DLL中的函数。
在函数或动作的起始处插入下列代码:
#pragma code(".dll")
(...);
(...);
.
.
.
(...);
#pragma code()
来自<名称.dll>的函数<函数名称1>...<函数名称n>均已进行了声明,并可由各自的函数和动作进行调用。
实例:
#pragma code("kernel32.dll")
VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);
#pragma code()
SYSTEMTIME st;
GetSystemTime(&st);
也可以在头文件Apdefap.h中作此改变。
在WinCC中使用自己的DLL时,必须使用发行版。WinCC是发行版,因而也使用系统DLL的发行版。如果在调试版中生成了自定义DLL,则有可能DLL的发行版和调试版二者都将装载。这样会增加需要的内存空间。
DLL的结构必须使用1个字节对齐方式进行设置。
注意:
DLL既可保存在\bin目录,也可保存在某个已经在系统变量PATH中定义过的路径中。此变量在操作系统的系统属性中定义。
老万啊!
有问题啊,如上所说,只要一调用GetFileName()函数,编译通不过,我查阅了相关的WINCC的手册,说有一个头文件COMMDLG.H才可以用,但WINDOS里没有这个函数.
如下:
#pragma code ("comdlg32.dll")
#include "commdlg.h"//手册上说要这个头文件,可是WINDOS里没有。编译不通
#pragma code()
HWND hWnd=NULL;
hWnd=FindWindos()
.......
怎么回事呢?