우리는 프레임 워크 2.0과 함께 VS 2005를 사용하여 하나의 Windows 응용 프로그램을 개발했습니다. 이 응용 프로그램은 32 비트 운영 체제에서 완벽하게 실행됩니다. 이제 64 비트 OS에 대한 지원을 제공해야합니다.64 비트 OS에서 "클래스가 등록되지 않았습니다 (HRESULT 예외 : 0x80040154 (REGDB_E_CLASSNOTREG))"
64 비트 운영 체제에서 작동하는 동안 아래 오류 메시지가 표시됩니다.
"클래스가 등록되지 않았습니다 (HRESULT에서 예외 : 0x80040154 (REGDB_E_CLASSNOTREG))". 다음
는
try 블록에 문제를 가져 오기 코드 블록
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Driver));
this.axDriver = new AxCCNAccess.AxDriver();
((System.ComponentModel.ISupportInitialize)(axDriver)).BeginInit();
SuspendLayout();
//
// axDriver
//
axDriver .Enabled = true;
axDriver .Location = new System.Drawing.Point(241, 211);
axDriver .Name = "axDriver ";
axDriver .OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axDriver .OcxState")));
axDriver .Size = new System.Drawing.Size(41, 42);
axDriver .TabIndex = 0;
//
// Driver
//
AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
ClientSize = new System.Drawing.Size(292, 266);
Controls.Add(axDriver);
Name = "DriverContainer";
Text = "DriverContainer";
try
{
((System.ComponentModel.ISupportInitialize)(axDriver)).EndInit();
}
catch (Exception ex)
{
string sss = ex.Message;
}
ResumeLayout(false);
입니다.
64 비트 응용 프로그램에 32 비트 ocx를 포함하려고합니다. 64 비트 OS에서 32 비트 응용 프로그램으로 실행하도록 설정하면 응용 프로그램이 잘 실행됩니다 ... 프로젝트 속성 -> 빌드 -> Platform Target = x86 –