'uint32_t' সনাক্তকারীকে ত্রুটি পাওয়া যায়নি


95

আমি উইন্ডোজগুলির জন্য লিনাক্স সি থেকে ভিজ্যুয়াল সি ++ তে পোর্টিং করছি।

ভিজ্যুয়াল সি ++ জানে না #include <stdint.h>তাই আমি এটি মন্তব্য করেছিলাম।

পরে, আমি এই 'uint32_t': identifier not foundত্রুটিগুলি অনেক খুঁজে পেয়েছি । কীভাবে সমাধান করা যায়?


কোনটি আপনি মন্তব্য করছেন অন্তর্ভুক্ত?
ড্যানিয়েল এ। হোয়াইট

4
এবং, ভিজ্যুয়াল সি ++ এর কোন সংস্করণ (গুলি) আপনি ব্যবহার করছেন? uint32_tএবং অন্যান্য সঠিক-প্রস্থের পূর্ণসংখ্যার ধরণগুলি কেবল C99 এবং C ++ 0x এরই অংশ, সুতরাং পুরানো সংকলকগুলি (যেমন ভিজ্যুয়াল সি ++ ২০০৮ এবং তার আগের) সেগুলি নেই।
জেমস ম্যাকনেলিস

কিছুটা !!! # অন্তর্ভুক্ত <stdint.h> # অন্তর্ভুক্ত <syslog.h> # অন্তর্ভুক্ত <লিনাক্স / stddef.h> # অন্তর্ভুক্ত <pthread.h> # অন্তর্ভুক্ত <unistd.h> ধন্যবাদ !!!
কেভিন

আমি ভিজ্যুয়াল সি ++ এক্সপ্রেস 2008 ব্যবহার করছি।
কেভিন

4
@ কেভিন: আপনি কেবল প্ল্যাটফর্ম-নির্দিষ্ট হেডারগুলি সরাতে পারবেন না এবং সেগুলি সম্পর্কে ভুলে যেতে পারবেন না। নতুন প্ল্যাটফর্মের জন্য আপনাকে বিকল্পগুলি খুঁজতে হবে। এটি প্রায়শই আপনার কোডটিকে পোর্টেবল করার জন্য পুনরায় লেখার কিছু পরিমাণে জড়িত।
অরবিটে হালকা ঘোড়দৌড়

উত্তর:


115

এই প্রকারটি সি শিরোনামে সংজ্ঞায়িত করা হয়েছে <stdint.h>যা সি ++ 11 স্ট্যান্ডার্ডের অংশ তবে সি ++ 03 তে মানক নয়। শিরোনামে উইকিপিডিয়া পৃষ্ঠা অনুসারে , ভিএস 2010 পর্যন্ত এটি ভিজ্যুয়াল স্টুডিওতে পাঠানো হয়নি।

ইতিমধ্যে, আপনি সম্ভবত সি দ্বারা প্রত্যাশিত প্রকারের সাথে মাইক্রোসফ্টের কাস্টম পূর্ণসংখ্যার প্রকারেরtypedef মানচিত্র যুক্ত করে শিরোনামের নিজস্ব সংস্করণটি নকল করতে পারেন For উদাহরণস্বরূপ:

typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
/* ... etc. ... */

আশাকরি এটা সাহায্য করবে!


4
আপনি বুস্টের সিএসডিডিন্ট প্রয়োগও ব্যবহার করতে পারেন।
পিটার হুইন

আমি আমার পৃষ্ঠায় আপনার কোড অনুলিপি এবং আটকান। তবে এটি এই ত্রুটিটি দেখায় "সিনট্যাক্স ত্রুটি: অনুপস্থিত ';' সনাক্তকারী 'int32_t' "এর আগে এবং" অনুপস্থিত টাইপ স্পেসিফায়ার - ইনট ধরে নেওয়া হয়েছিল Note দ্রষ্টব্য: সি ++ ডিফল্ট-ইনটকে সমর্থন করে না "।
কেভিন

দুঃখিত পিটার, আমি সি তে নতুন বুস্টের সিএসডিডিন্ট বাস্তবায়ন কী?
কেভিন

4
মাইক্রোসফ্টের স্থির আকারের পূর্ণসংখ্যার প্রকারগুলি "টি" দিয়ে শেষ হয় না। চেষ্টা করুন __int32
বেন ভয়েগট

4
u_int32_tএবং uint32_tএকই ধরণের নয়; একটির পরে অতিরিক্ত আন্ডারস্কোর রয়েছে u। এটি আলাদা সমস্যা বলে মনে হচ্ছে।
টেমপ্লেটটিফাইফ

79

আপনি পারেন #include <cstdint>। এটি সি ++ এর অংশ - ২০১১ সাল থেকে মান।


4
সি ++ এবং ভিএস 2010 এর মতো প্রশ্নের সীমাবদ্ধতাগুলি অনুসরণ করে এটি সম্ভবত গ্রহণযোগ্য উত্তর হওয়া উচিত। আপনার নিজস্ব টাইপিডেফ রোল করার দরকার নেই।
jwww

7

আমার একই ত্রুটি রয়েছে এবং এটি নিম্নলিখিত ফাইল সহ এটি স্থির করে

#include <stdint.h>

আপনার ফাইলের শুরুতে।


4
প্রশ্নে ইশারা করা হিসাবে, stdint.h ওপিতে ব্যবহৃত সি ++ কম্পাইলারের অংশ নয়। এই উত্তরটি প্রশ্নের সমাধান করে না।
IInspectable


3

এমসিনটিটাইপস প্রকল্পের পৃষ্ঠায় একটি বাস্তবায়ন পাওয়া যায় - "এই প্রকল্পটি মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিওতে stdint.h এবং inttyype.h এর অনুপস্থিতি পূরণ করে"।

এই বাস্তবায়নের সাথে আমার অভিজ্ঞতা নেই তবে আমি এটি অন্যের দ্বারা প্রস্তাবিত দেখেছি।


এটি সবচেয়ে ভাল এবং সর্বাধিক সাধারণ প্রয়োগ ব্যবহৃত হয়।
ফিলিপ ওম্ব্রেডনে

2

উইন্ডোজ আমি সাধারণত উইন্ডোজ টাইপ ব্যবহার। এটি ব্যবহার করতে আপনাকে অন্তর্ভুক্ত করতে হবে <Windows.h>

এই ক্ষেত্রে uint32_t হ'ল UINT32 বা সবেমাত্র UINT।

সমস্ত ধরণের সংজ্ঞা এখানে রয়েছে: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx


0

আমাকে VS2010 এ প্রকল্প চালাতে হয়েছিল এবং আমি কোডটিতে কোনও পরিবর্তন আনতে পারিনি। আমার সমাধানটি ছিল vS2013 ইনস্টল করা এবং ভিএস 2010 পয়েন্টে ভিসি ++ ডিরেক্টরিগুলি-> প্রোগ্রাম ফাইলগুলিতে অন্তর্ভুক্তি নির্দেশিকা (x86) \ মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও 12.0 \ ভিসি \ অন্তর্ভুক্ত। তারপরে আমার প্রকল্পটি কোনও সমস্যা ছাড়াই সংকলিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.