我的DLL代码如下(用的是C++ builder 2010): extern  "C"  __declspec(dllexport) void __stdcall  Suspend(bool Flas3,AnsiString time) ;
void __stdcall  Suspend(bool Flas3,AnsiString time)    // LPCTSTR
{
  TOKEN_PRIVILEGES tp;
HANDLE hToken;
LUID luid;
LPTSTR MachineName=NULL;
HANDLE hTimer = NULL;
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken )) ////////从这里////////////////////////////
{
 //Application->MessageBox("ERROR type 1", NULL, MB_OKCANCEL);
 ShowMessage("ERROR type 1");
         //PERR("OpenProcessToken", GetLastError());
//return RTN_ERROR;
}
if(!LookupPrivilegeValue(MachineName, SE_SHUTDOWN_NAME, &luid))
{
        //PERR("LookupPrivilegeValue", GetLastError() );
//Application->MessageBox("ERROR type 2", NULL, MB_OKCANCEL);
ShowMessage("ERROR type 2");
//return RTN_ERROR;
}        tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
        tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
        AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES),
        NULL, NULL ); ////////////////到这里,是取得权限/////////////////////
// ExitWindowsEx(EWX_POWEROFF | EWX_FORCE, 0);
//Hans, time = "-"+time + "0000000"  ;
ShowMessage(time); LARGE_INTEGER liDueTime;
liDueTime.QuadPart=StrToInt64(time);
// Create a waitable timer.
hTimer = CreateWaitableTimer(NULL, TRUE, "WaitableTimer");
if (!hTimer)
{
//printf("CreateWaitableTimer failed (%d)\n", GetLastError());
//Application->MessageBoxA("CreateWaitableTimer failed!",NULL,MB_OKCANCEL);
ShowMessage("CreateWaitableTimer failed!");
//return 1;
}
//printf("Waiting for 10 seconds...\n");
// Set a timer to wait for 10 seconds.
if (!SetWaitableTimer(
hTimer, &liDueTime, 0, NULL, NULL, 1))
{
//Application->MessageBoxA("SetWaitableTimer failed!",NULL,MB_OKCANCEL);
ShowMessage("SetWaitableTimer failed!");
//printf("SetWaitableTimer failed (%d)\n", GetLastError());
//return 2;
}
//Hans.
if(Flas3) SetSystemPowerState(TRUE,TRUE);
else SetSystemPowerState(FALSE,TRUE);}
我在我的C#程序是这样调用的:[DllImport("WakeUpDll.dll",CharSet = CharSet.Auto)]
        public static extern void Suspend(bool Flag3, string time);        private void button1_Click(object sender, EventArgs e)
        {
            string ad;
            if (textBox3.Text == "")
            {
                ;
            }
            else
            {
                ad = textBox3.Text.ToString();
                bool Flags3 = true;
                Suspend(Flags3,ad);
            }
        }
我点击BUTTON的时候提示无法加载DLL文件,找不到DLL模块。请大侠们帮我看看是哪里出错了,随便给出解法。谢谢啦!