我看到有动态链接库可以这样调用
m_hwnd = form_load("c:\bb.xml"); //返回一个句柄
form_setparam(m_hwnd,"value","1"); //设置参数
release(m_hwnd); //释放即外部程序调用的时候可以根据句柄设置参数值,而我的dll各个函数好像是独立的,请教高手这样的动态链接库应该怎么实现,
m_hwnd = form_load("c:\bb.xml"); //返回一个句柄
form_setparam(m_hwnd,"value","1"); //设置参数
release(m_hwnd); //释放即外部程序调用的时候可以根据句柄设置参数值,而我的dll各个函数好像是独立的,请教高手这样的动态链接库应该怎么实现,
解决方案 »
- CButton::Create函数UINT nID什么作用?
- 求助,为什么读不到字符串呢?
- 大家好,我用WIN API写了个串口通信的类,其中启动线程后ReadFile后GetLastError是87,也就是The parameter is incorrect.为什么,源码如下!
- 如何更改多界面显示的前后顺序了?
- 如何将Visio所做的图在VC中显示出来
- 组件打包!
- 请教: 我编了个程序, 为什么 ULONG 这个类型不能识别出来????急呀1!
- sdi工程退出
- 请教:在VC++6里怎么使用ASP??
- 请您说两句!--新手请教!
- 散分兼显耀帖
- 问个貌似很简单的sql问题,可是我却找不到简便的方法
init负责初始化,返回一个“句柄”,其它的接口函数都得使用此句柄来操作。做一个例子
//myclass.h
class MyClass
{
....
};//MyDll.h
#define MY_HANDLE long
....
MYDLL_API MY_HANDLE init();//MyDll.cpp
#include "MyDll.h"
#include "myclass.h"MY_HANDLE init()
{
MyClass *pMyClass = new MyClass;
return (MY_HANDLE)pMyClass;
}
m_hwnd1 = form_loadstr( "1str"); //返回一个句柄
form_addstr(m_hwnd1,"addstr");
m_hwnd2 = form_loadstr( "2str"); //返回一个句柄
form_addstr(m_hwnd2,"addstr");form_getstr(m_hwnd1) //得到"1straddstr"
form_getstr(m_hwnd2) //得到"2straddstr"form_release(m_hwnd1);
form_release(m_hwnd2);
这样的dll怎么写
就是实现一个链表,和是不是DLL没什么关系
如:struct TEST
{
long lIndex; //序号
char *pStr; //要操作的字符串
TEST *next; //下一个节点
};TEST *g_pFirst = NULL; //链表的开头long form_loadstr(char *pSrc)
{
TEST *pTemp = new TEST;
...往链表里添加节点 return pTemp->lIndex;
}void form_addstr(long lIndex, char *pSrc)
{
...在链表里查找序号等于lIndex的节点,更新字符串值
}char* form_getstr(long lIndex)
{
...在链表里查找序号等于lIndex的节点,返回字符串指针
}void form_release(long lIndex)
{
...从链表里删除序号等于lIndex的节点
}
http://blog.hc360.com/portal/personShowArticle.do?articleId=64285
http://blog.hc360.com/portal/personShowArticle.do?articleId=64283
{
if (handle == 0)
return; MyClass *pMyClass = (MyClass *)handle;
handle->Fini();
}