Delphi调用VC中Regular dll的问题(混合语言编程问题)(100分)

  • 主题发起人 主题发起人 och.ocx
  • 开始时间 开始时间
O

och.ocx

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi4可以调用VC中MFC生成的Regular类型的DLL(请注意:不是Win32类型),但是我用VC写了一个Regular类型的DLL(其中用到了CSocket类,VC5下调试通过),在DELPHI4中调用时却出错,跟踪(用MessageBox(...),很原始
)发现在调用CSocket的Create时出错,具体出错的行如下:
ASSERT(afxCurrentInstanceHandle != NULL);(AfxWin1.inl中17行)
以下几方面您能帮我吗?
1。Dephi中能调用VC写的Regular类型的DLL(其中用了CSocket类)吗?
2。Dephi中怎吗方便的调试用VC写的DLL?
3。您能指点我用DELPHI和VC混合编程的经验吗?
多谢!!!
 
第一个问题已经解决,可以调用。
新增一个问题,请教各位:
Delphi4调用VC5MFC生成的Regular型DLL时,出现了一个奇怪的问题:
DLL中一个输出函数Init( HWND ),需要一个窗口句柄,
在DELPHI中我如下调用此函数Init( Application.Handle );
在VC实现的Init(HWND hTagWnd)中有如下语句:
if ( ::!IsWindow(TagWnd) )
return FALSE;
结果IsWindow( Application.Handle )总是返回FALSE,
而在DELPHI中我直接调用IsWindow( Application.Handle )却总是返回TRUE。
这是为什吗?
 
对于你提出怎样, 我不清楚你的想法,你是打算在Delphi中调试VC的Dll,
如果你打算调试dll中的程序, 可以说这不可能. 你只可以调试Delphi编写的
那部分的程序.
 
用Soft-ice可以调试VC的DLL和Delphi程序,
 
已经搞定了,忘了加StdCall,新手上路,请多指点!
多谢!!!
 
后退
顶部