刚写编写DLL,所以不是很懂。
VC编写的Test.dll的代码如下:
#include <windows.h>
extern "C"
{
_declspec(dllexport)  void  MyDll(char *aa,char *bb);
}
void  MyDll(char *aa,char *bb)
{
MessageBox(NULL,aa,"Infomation",MB_OK);
MessageBox(NULL,bb,"Infomation",MB_OK);
}
我用Rundll32.exe执行:Rundll32.exe Test.dll,MyDll Hello1,Hello2并没有弹出Hello1和Hello2,而是直接出错了.
代码或许有问题,或许参数不应该是这样传递的,
所以我请问一下应该怎么改,谢谢.

解决方案 »

  1.   

    rundll32   要求调用的函数的接口是   
      void   CALLBACK   YourEntryPointName(   
          HWND   hwnd,                 //   handle   to   owner   window   
          HINSTANCE   hinst,     //   instance   handle   for   the   DLL   
          LPTSTR   lpCmdLine,   //   string   the   DLL   will   parse   
          int   nCmdShow             //   show   state   
      );你这个dll不支持Rundll32.exe的传参
      

  2.   

    在dll工程中用COPYDATASTRUCT 可以传递数据
    在exe工程中使用WM_COPYDATA 消息接收数据