斑竹 各位高手帮忙看看 我的栈怎么乱了 在线等待
在写一个DLL 可是堆栈乱了 找不到原因 麻烦各位
dll的.h
#ifndef __MYA_h__
#define __MYA_h__
#include <vcl.h>
#define DLL_EXP __stdcall __declspec(dllexport)
extern "C" void DLL_EXP MyFunction(TDateTime dpara1,int ipara2);
#endif
dll的cpp
#include <vcl.h>
#include <windows.h>
#include "MyA.h"
#pragma hdrstop
#pragma argsused
AnsiString ConStr[]=
{
"One",
"Two"
};
AnsiString UserStr;
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
return 1;
}
void ExeFun()
{
ShowMessage(UserStr);
}
void __stdcall __declspec(dllexport) MyFunction(TDateTime dpara1, int ipara2)
{
UserStr = "This is a Test";
UserStr += DateTimeToStr(dpara1);
UserStr += IntToStr(ipara2);
UserStr += ConStr[0];
ExeFun();
}
用dll 的App
定义button 在click event中
typedef void (*__stdcall NewFun)( int ipara2);
NewFun Function1;
HANDLE GlobHandle=NULL;
GlobHandle = LoadLibrary("mydll.dll");
int i;
if(GlobHandle)
{
Function1 = (NewFun)GetProcAddress(GlobHandle,"MyFunction");
for(i= 0; i<100; ++i)
Function1(TDateTime::GetCurrentTime(),i);
/*这个循环不能执行100次,要么出错,要么i的值狂大*/
FreeLibrary(GlobHandle);
}
帮忙!在线等待
问题点数:80、回复次数:4Top
1 楼zhao_as(火山)回复于 2003-06-04 17:46:06 得分 0
对不起
typedef void (*__stdcall NewFun)( int ipara2);
应为
typedef void (*__stdcall NewFun)( TDateTime dipara1,int ipara2);Top
2 楼HUANG_JH(保卫钓鱼岛)回复于 2003-06-05 09:03:49 得分 40
函数定义要加extern "C"
extern "C"__declspec(dllexport)void __stdcall MyFunction(TDateTime dpara1, int ipara2)
调用
typedef void __stdcall TNewFun( TDateTime dipara1,int ipara2);
HANDLE GlobHandle=NULL;
GlobHandle = LoadLibrary("libdll.dll");
int i;
if(GlobHandle)
{
TNewFun *Function1 = (TNewFun *)GetProcAddress(GlobHandle, "MyFunction" );
for(i= 0; i<100; i++)
Function1(Now(),i);
FreeLibrary(GlobHandle);
}
没有问题,弹出了100个messageboxTop
3 楼FlySky01(飞云在天)回复于 2003-06-05 10:23:56 得分 40
HUANG_JH(致以革命同志的敬礼) 没有错
不过这样也行
#define DLL_EXP __stdcall __declspec(dllexport)
extern "C" void DLL_EXP MyFunction(TDateTime dpara1,int ipara2);
把 void 移动到DLL_EXP 后面
定义时候不用任何修饰 ,只用在函数类型后加标准调用 __stdcall
既void __stdcall MyFunction(TDateTime dpara1,int ipara2){}
all ok!
Top
4 楼zhao_as(火山)回复于 2003-06-05 13:42:29 得分 0
谢谢 谢谢!Top
相关问题
- 希望斑竹帮助解答!!在线等待
- 有点迷惑的问题,斑竹帮忙,各位帮忙!!!(在线等待)
- 救命……(在线等待……, 问题解决请斑竹马上结贴!)
- 孟斑竹帮忙! 在先等待
- 100分 在线等待 如何保持设计期COM的属性值 请斑竹务必出面
- 网吧救急◆◆◆斑竹请进◆◆◆各位CSDN的兄弟帮忙,急..急..急,在线等待!
- 高分请教各位斑竹和高手,很急!很急!如果网络允许,在线等待!要交货了,呵呵!:)
- 虚心请教各位高手和斑竹菜鸟级问题:怎么不能WaitForSingleObject(hEvent->Handle,0)???在线焦急等待!!!请各位知道的帮帮忙!谢谢!
- 在线等待!立刻加分!有哪位仁兄开发过web parts,欲知详情请进...谢谢!斑竹storm97、xch74请来关心关心我吧!
- 英文好的高手进来,帮帮小弟翻译一下,在线等待,解决问题立即给分!【斑竹留情,VC版高手多】



