2010-05-26 30 views
7

Chúng tôi đang nâng cấp từ VS2005 lên VS2010. Chúng tôi gần như có nhưng có một vấn đề với Crystal Reports. Chúng tôi sử dụng thành phần RDC (COM-based) trong ứng dụng C++ của chúng tôi.CRXIR2 không hoạt động với VS2010 trên Windows 7 hoặc trên Vista

Trên Windows 7 hoặc trên VISTA, tôi không thể khiến người xem cũng như các điều khiển của nhà thiết kế không hoạt động. tôi nhận được vi phạm truy cập khi kiểm soát được kích hoạt:

// from atlhost.h (line 2208) 
hr = m_spOleObject->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL, spClientSite, 0, m_hWnd, &m_rcPos); 

Điều lạ là khi tôi chạy exe cùng trên một máy XP, có vẻ như để làm việc.

Về cơ bản, chúng tôi sử dụng lớp cửa sổ "AtlAxWin100" để lưu trữ điều khiển báo cáo Crystal ("CrystalReports11.ActiveXReportViewer.1"). Tôi đang sử dụng phiên bản SP6 của các báo cáo Crystal để có phiên bản mới nhất.

Ngoài ra, khi tôi biên dịch cùng mã với VS2005 và chạy nó trên Windows7 hoặc Vista, mọi thứ hoạt động tốt.

Có ai có bất kỳ ý tưởng nào về những gì có thể gây ra sự cố hoặc ý tưởng để điều tra thêm không?

Trả lời

3

có vẻ như nó có liên quan đến DEP.

Nếu chúng ta tắt DEP hoàn toàn trên hệ thống với

bcdedit /set Nx AlwaysOff 

và sau đó khởi động lại tất nhiên, Viewer hoạt động!

Thật không may đây là một hệ thống toàn cầu tắt. Chúng tôi đã cố gắng để tắt DEP cho exe của chúng tôi một mình trước, nhưng sau đó chúng tôi nhận được một tin nhắn từ Windows rằng chúng tôi đã không được phép tắt DEP cho exe của chúng tôi ...

+1

Có lẽ lý do tại sao chúng tôi không thể tắt nó là chúng tôi cũng có mã .NET trong exe của chúng tôi. Tuy nhiên với editbin.exe/NXCOMPAT: NO myExe.exe bạn chỉ có thể tắt nó đi! – tangens

+0

Trong Visual Studio, bạn có thể tắt DEP cho ứng dụng của mình trong Thuộc tính cấu hình-> Trình liên kết-> Nâng cao-> Ngăn chặn thực thi dữ liệu (DEP) ->/NXCOMPAT: NO – TehShrike

1
Các vấn đề liên quan