none
無法找到程序輸入點(在動態連結程式庫kernel32.dll)

    問題

  •  請問一下....

    小弟之前從vc6轉換專案已經成功移植到vs .net 2003上,又要從.net2003 移植到.net 2008上

    其中出現以下錯誤訊息;

    1>------ Build started: Project: NetDeliver, Configuration: Release Win32 ------
    1>Compiling...
    1>NewDeviceDlg.cpp
    1>c:\vsto2008_trance0220\ricoh_0.992_081203\.\upld.h(138) : error C2733: second C linkage of overloaded function 'GetProductInfo' not allowed
    1>        c:\vsto2008_trance0220\ricoh_0.992_081203\.\upld.h(138) : see declaration of 'GetProductInfo'
    1>NetDeliverView.cpp
    1>c:\vsto2008_trance0220\ricoh_0.992_081203\.\upld.h(138) : error C2733: second C linkage of overloaded function 'GetProductInfo' not allowed
    1>        c:\vsto2008_trance0220\ricoh_0.992_081203\.\upld.h(138) : see declaration of 'GetProductInfo'
    1>.\NetDeliverView.cpp(2920) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
    1>NetDeliver.cpp
    1>c:\vsto2008_trance0220\ricoh_0.992_081203\.\upld.h(138) : error C2733: second C linkage of overloaded function 'GetProductInfo' not allowed
    1>        c:\vsto2008_trance0220\ricoh_0.992_081203\.\upld.h(138) : see declaration of 'GetProductInfo'
    1>ColorAdjust.cpp
    1>c:\vsto2008_trance0220\ricoh_0.992_081203\.\upld.h(138) : error C2733: second C linkage of overloaded function 'GetProductInfo' not allowed
    1>        c:\vsto2008_trance0220\ricoh_0.992_081203\.\upld.h(138) : see declaration of 'GetProductInfo'
    1>Generating Code...
    1>Creating browse information file...
    1>Microsoft Browse Information Maintenance Utility Version 9.00.21022
    1>Copyright (C) Microsoft Corporation. All rights reserved.
    1>Build log was saved at "file://c:\VSto2008_trance0220\RICOH_0.992_081203\Release\BuildLog.htm"
    1>NetDeliver - 4 error(s), 1 warning(s)
    ========== Build: 0 succeeded, 1 failed, 2 up-to-date, 0 skipped ==========

    其中我把

    #ifdef __cplusplus
    extern "C" {
    #endif

    改成為

    #ifdef __cplusplus
    extern "C++" {
    #endif

    雖然已經可以通過complier & linking,但是在執行會出現警告視窗,內容為

    "無法找到程序輸入點GetProductInfo(在動態連結程式庫kernel32.dll)"

    請問是我改為"c++"才會出現這樣的錯誤嗎??

    或是我應該要怎麼修改以及訂正呢??

    請大家幫幫忙..

    2009年2月23日 上午 05:26

解答

  • 謝謝您的回應..


    這個問題我已經解決了...

    主要是函數名稱有衝突到,修改名稱後就可以了..

    謝謝..

    • 已標示為解答 魔力點子 2009年2月24日 上午 05:47
    2009年2月24日 上午 05:46

所有回覆

  • HI,

    您可以在引入所有的HEADER FILE之define入以下的內容, 不要改extern "C", 再試試看:

    #define _CSTDLIB_

    tihs
    2009年2月24日 上午 04:29
  • 謝謝您的回應..


    這個問題我已經解決了...

    主要是函數名稱有衝突到,修改名稱後就可以了..

    謝謝..

    • 已標示為解答 魔力點子 2009年2月24日 上午 05:47
    2009年2月24日 上午 05:46