问题
I'm trying to use a COM DLL (written in Delphi 7) within my Delphi 7 IntraWeb application but it's failing due to DEP. I'm pretty much certain it's DEP that is preventing me from using the DLL because if I compile and run my IntraWeb app as a StandAlone Server, everything works fine. But, compiling and runnning it as an ISAPI DLL, it fails.
On WinXP (using IIS 6) I can add DllHost.exe to DEP and everything works. Of course, I really don't want to do that. On Win7/2008 (IIS 7) this isn't an option.
Can someone point me in a direction that can help me get my COM DLL to work when called from an IntraWeb ISAPI DLL?
Do I need to do something to the COM DLL? Are there any permissions I can add somewhere?
Thanks, Michael
回答1:
i would host the dll inside a local executable, calling methods until the crash happens. You would do this with DEP enabled on your own machine.
Unfortunately Delphi 7 itself crashes with Data Execution Prevention enabled, in addition to memory violations in the RTL/VCL that TOndrej mentioned.
That is what you'll need to do to get your COM dll working with DEP - find the bugs and fix them.
来源:https://stackoverflow.com/questions/7502036/dep-preventing-my-com-dll-from-working